MySQL數據庫提供了查詢緩沖機制。使用該查詢緩沖機制,MySQL將SELECT語句和查詢結果存放在緩沖區中,以後對於同樣的SELECT語句區分大小寫),將直接從緩沖區中讀取結果。以節省查詢時間,提高了SQL查詢的效率。本文我們主要就介紹一下MySQL數據庫的查詢緩沖機制,接下來就讓我們來一起了解一下這部分內容。
通過調節以下幾個參數可以知道query_cache_size設置得是否合理:
Qcache inserts
Qcache hits
Qcache lowmem prunes
Qcache free blocks
Qcache total blocks
Qcache_lowmem_prunes的值非常大,則表明經常出現緩沖不夠的情況,同時Qcache_hits的值非常大,則表明查詢緩沖使用非常頻繁,此時需要增加緩沖大小Qcache_hits的值不大,則表明你的查詢重復率很低,這種情況下使用查詢緩沖反而會影響效率,那麼可以考慮不用查詢緩沖。此外,在SELECT語句中加入SQL_NO_CACHE可以明確表示不使用查詢緩沖。
Qcache_free_blocks,如果該值非常大,則表明緩沖區中碎片很多query_cache_type指定是否使用查詢緩沖。
如果設置為:
query_cache_size = 32M
query_cache_type= 1
得到如下狀態值:
Qcache queries in cache 12737 //表明目前緩存的條數。
Qcache inserts 20649006
Qcache hits 79060095 //看來重復查詢率還挺高的。
Qcache lowmem prunes 617913 //有這麼多次出現緩存過低的情況。
Qcache not cached 189896
Qcache free memory 18573912 //目前剩余緩存空間。
Qcache free blocks 5328 //這個數字似乎有點大,碎片不少
Qcache total blocks 30953
如果內存允許,還可以將query_cache_size再設大一些。
關於MySQL數據庫查詢緩存機制的介紹就到這裡了,如果您想了解更多MySQL數據庫的知識,可以去這裡看一看:http://database.51cto.com/mysql/,相信一定能夠給您帶來收獲的!