為什么MySQL做查詢語句時,第一次會很慢,但是第二次,第三次就會變快?


1、mysql默認的query_cache是打開的,第一次查詢走的是數據文件,第二次就是query_cache,查詢方式:show variables like '%query_cache%',如果數據更新會重新緩存。

2、如果mysql使用的數據引擎是innodb那么第一次查詢走數據文件,第二次buffer_pool也比查詢數據文件要快。

 

Sql語句第一次查詢慢的原因不僅僅是因為執行計划沒有被緩存這么簡單,有時候你會發現Sql語句重用了執行計划,但是第一次查詢還是很慢。

最主要的原因是第一次查詢的時候,mysql會將查詢出的部分數據和索引從磁盤加載到內存作為緩存,而第二次查詢的時候就直接從內存緩存中拿出數據了,自然要比從磁盤上加載數據快很多。

mysql 會定期清除緩存,所以一段Sql語句如果長期不執行后,就需要從磁盤從新加載數據。

 

設置緩存大小:比如設置個20MB:SET GLOBAL QUERY_CACHE_SIZE=20000000; 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM