程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL數據庫的查詢緩沖機制

MySQL數據庫的查詢緩沖機制

編輯:MySQL綜合教程

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/,相信一定能夠給您帶來收獲的!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved