MySQL查詢快取引數詳解
查詢快取方面主要涉及兩個引數,query_cache_size用於設定MySQL的查詢快取(query cache)大小,query_cache_type用於設定使用查詢快取的型別,
可以用以下命令檢視具體使用情況:
mysql> show global status like 'qcache%';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| Qcache_free_blocks | 1 |
| Qcache_free_memory | 195024544 |
| Qcache_hits | 0 |
| Qcache_inserts | 3 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 121 |
| Qcache_queries_in_cache | 1 |
| Qcache_total_blocks | 4 |
+-------------------------+-----------+
8 rows in set (0.00 sec)
相關引數解釋如下:
Qcache_free_blocks:快取中相鄰記憶體塊的個數。數目大說明可能有碎片。flush query cache會對快取中的碎片進行整理,從而得到一個空閒塊。
Qcache_free_memory:快取中的空閒記憶體。
Qcache_hits:多少次命中,透過這個引數可以檢視query cache的基本命中效果。
Qcache_inserts:每次插入一個查詢時就增大,命中次數除以插入次數就是非命中率。
Qcache_lowmem_prunes:多少條query因為記憶體不足而被清理出query cache,透過Qcache_lowmem_prunes和Qcache_free_memory引數相互結合,能夠
更清楚地瞭解到系統中query cache的記憶體大小是否真的足夠,是否非常頻繁的出現因為記憶體不足而有query被換出的情況。
Qcache_not_cached:不適合進行快取的查詢數量,通常是由於這些查詢不是SELECT語句或用了now()之類的函式。
Qcache_queries_in_cache:當前快取的查詢和響應數量。
Qcache_total_blocks:快取中塊的數量。
關於query_cache的配置:
mysql> show variables like 'query_cache%';
+------------------------------+-----------+
| Variable_name | Value |
+------------------------------+-----------+
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 195035136 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
+------------------------------+-----------+
5 rows in set (0.00 sec)
各個欄位的解釋如下:
query_cache_limit:超過此大小的查詢將不再快取。
query_cache_min_res_unit:快取塊的最小值。
query_cache_size:快取大小值
query_cache_type:快取型別,決定快取什麼樣的查詢。
query_cache_wlock_invalidate:表示當有其它客戶端正在對MyISAM表進行寫操作時,讀請求是要等write lock釋放資源後再查詢還是允許直接
從query cache中讀取結果,預設為FALSE
查詢快取碎片率=Qcache_free_blocks/Qcache_total_blocks * 100%
查詢快取利用率=(query_cache_size - Qcache_free_memory)/query_cache_size * 100%
查詢快取利用率在25%以下,說明query_cache_size設定的過大,可適當減小。
查詢快取命中率=(Qcache_hits - Qcache_inserts) / Qcache_hits * 100%
可以用以下命令檢視具體使用情況:
mysql> show global status like 'qcache%';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| Qcache_free_blocks | 1 |
| Qcache_free_memory | 195024544 |
| Qcache_hits | 0 |
| Qcache_inserts | 3 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 121 |
| Qcache_queries_in_cache | 1 |
| Qcache_total_blocks | 4 |
+-------------------------+-----------+
8 rows in set (0.00 sec)
相關引數解釋如下:
Qcache_free_blocks:快取中相鄰記憶體塊的個數。數目大說明可能有碎片。flush query cache會對快取中的碎片進行整理,從而得到一個空閒塊。
Qcache_free_memory:快取中的空閒記憶體。
Qcache_hits:多少次命中,透過這個引數可以檢視query cache的基本命中效果。
Qcache_inserts:每次插入一個查詢時就增大,命中次數除以插入次數就是非命中率。
Qcache_lowmem_prunes:多少條query因為記憶體不足而被清理出query cache,透過Qcache_lowmem_prunes和Qcache_free_memory引數相互結合,能夠
更清楚地瞭解到系統中query cache的記憶體大小是否真的足夠,是否非常頻繁的出現因為記憶體不足而有query被換出的情況。
Qcache_not_cached:不適合進行快取的查詢數量,通常是由於這些查詢不是SELECT語句或用了now()之類的函式。
Qcache_queries_in_cache:當前快取的查詢和響應數量。
Qcache_total_blocks:快取中塊的數量。
關於query_cache的配置:
mysql> show variables like 'query_cache%';
+------------------------------+-----------+
| Variable_name | Value |
+------------------------------+-----------+
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 195035136 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
+------------------------------+-----------+
5 rows in set (0.00 sec)
各個欄位的解釋如下:
query_cache_limit:超過此大小的查詢將不再快取。
query_cache_min_res_unit:快取塊的最小值。
query_cache_size:快取大小值
query_cache_type:快取型別,決定快取什麼樣的查詢。
query_cache_wlock_invalidate:表示當有其它客戶端正在對MyISAM表進行寫操作時,讀請求是要等write lock釋放資源後再查詢還是允許直接
從query cache中讀取結果,預設為FALSE
查詢快取碎片率=Qcache_free_blocks/Qcache_total_blocks * 100%
查詢快取利用率=(query_cache_size - Qcache_free_memory)/query_cache_size * 100%
查詢快取利用率在25%以下,說明query_cache_size設定的過大,可適當減小。
查詢快取命中率=(Qcache_hits - Qcache_inserts) / Qcache_hits * 100%
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2124725/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 藉助查詢引數來利用 Laravel 快取Laravel快取
- mysql查詢快取簡單使用MySql快取
- mysql的查詢快取說明MySql快取
- Mysql 查詢快取 query_cacheMySql快取
- 獲取request中的查詢引數
- 詳解MySQL--慢查詢MySql
- MySQL引數化查詢的IN 和 LIKEMySql
- Mysql配置引數詳解(一)MySql
- 方法快取與查詢快取
- MySQL加速查詢速度的獨門武器:查詢快取(QueryCache)MySql快取
- mysql常用引數使用說明及查詢MySql
- MySQL 效能優化之快取引數優化MySql優化快取
- MySQL 4.1.0 中文參考手冊 --- 6.9 MySQL 查詢快取 (轉)MySql快取
- MySQL的查詢快取功能何時該開啟MySql快取
- MySQL InnoDB常見引數詳解MySql
- 【MYSQL】my.cnf引數詳解MySql
- 詳解NSURLCache快取引發的安全漏洞快取
- redis 快取 singlefly 查詢Redis快取
- MySQL 連線查詢超全詳解MySql
- 一鍵批量查詢極兔快遞並設定快遞引數
- MySQL relay log 詳細引數解釋MySql
- mysql5.6主從引數詳解MySql
- mysqldump 引數詳解(基於MySQL 5.6)MySql
- MySQL查詢擷取分析MySql
- MySQL配置檔案mysql.ini引數詳解MySql
- Mybatis快取詳解MyBatis快取
- mybatis二級快取引數MyBatis快取
- 深入mysql慢查詢設定的詳解MySql
- hibernate的查詢快取薦快取
- 開啟查詢慢查詢日誌引數
- 查詢hadoop引數變數Hadoop變數
- Redis詳解(十二)------ 快取穿透、快取擊穿、快取雪崩Redis快取穿透
- 關於快取與資料查詢次數的問題快取
- 【由淺入深學MySQL】- MySQL連線查詢詳解MySql
- MySQL8.0新增配置引數詳解MySql
- mysql編譯引數詳解(./configure)MySql編譯
- 隱含引數的查詢
- 隱藏引數查詢sqlSQL