標籤:
MySQL資料庫的查詢緩衝機制2011-08-10 11:07 佚名 火魔網 字型大小:T | T
使用查詢緩衝機制,可以極大地提高MySQL資料庫查詢的效率,節省查詢所用的時間。那麼查詢緩衝機制是怎樣設定的呢?本文我們就來介紹這部分內容,希望能夠對您有所協助。
AD:
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/,相信一定能夠給您帶來收穫的!
MySQL資料庫的查詢緩衝機制