mysql快取命中率,網上說法不一,下面我說下我的看法,大家輕拍:
總的select查詢數等於com_select(沒命中) + qcache_hits(命中) + 解析錯誤的查詢。
再來看看com_select變數:
[sql]view plain
copy
print?
mysql> show
global
status
like
'com_select'
; +---------------+-------+
| variable_name | value |
+---------------+-------+
| com_select | 46 |
+---------------+-------+
com_select等於qcache_inserts(快取失效) + qcache_not_cache(沒有快取) + 許可權檢查錯誤的查詢。
因此,mysql的查詢快取命中率 ≈ qcache_hits / (qcache_hits + com_select)
查詢快取變數:
[sql]view plain
copy
print?
mysql> show
global
status
like
'qcache%'
+-------------------------+----------+
| variable_name | value |
+-------------------------+----------+
| qcache_free_blocks | 1 |
| qcache_free_memory | 18856920 |
| qcache_hits | 3 |
| qcache_inserts | 20 |
| qcache_lowmem_prunes | 0 |
| qcache_not_cached | 26 |
| qcache_queries_in_cache | 0 |
| qcache_total_blocks | 1 |
+-------------------------+----------+
因此本例中的查詢快取命中率 ≈ 3/(3+46) = 6.12%
查詢快取變數含義:
qcache_free_blocks
目前還處於空閒狀態的 query cache中記憶體 block 數目,數目大說明可能有碎片。flush query cache會對快取中的碎片進行整理,從而得到乙個空閒塊。
qcache_free_memory
快取中的空閒記憶體總量。
qcache_hits
快取命中次數。
qcache_inserts
快取失效次數。
qcache_lowmem_prunes
快取出現記憶體不足並且必須要進行清理以便為更多查詢提供空間的次數。這個數字最好長時間來看;如果這個數字在不斷增長,就表示可能碎片非常嚴重,或者記憶體很少。(上面的free_blocks和free_memory可以告訴您屬於哪種情況)。
qcache_not_cached
不適合進行快取的查詢的數量,通常是由於這些查詢不是select語句以及由於query_cache_type設定的不會被cache的查詢。
qcache_queries_in_cache
當前快取的查詢(和響應)的數量。
qcache_total_blocks
快取中塊的數量。
快取命中率
安裝 docker redis 查詢乙個不存在的key 127.0.0.1 6379 get test nil 在看命中率 新插入乙個值 name 127.0.0.1 6379 set name jackma ok查詢name 127.0.0.1 6379 get name jackma 再看命中率...
快取命中率
避免命中 函式計算 無服務架構 tmp 初始化清空 tmp空間限制,新檔案生成 利用命中 快取命中率 終端使用者訪問加速節點時,如果該節點有快取住了要被訪問的資料時就叫做命中,如果沒有的話需要回原伺服器取,就是沒有命中。取資料的過程與使用者訪問是同步進行的,所以即使是重新取的新資料,使用者也不會感覺...
memcached 快取命中率
命中 可以直接通過快取獲取到需要的資料。不命中 無法直接通過快取獲取到想要的資料,需要再次查詢資料庫或者執行其它的操作。原因可能是由於快取中根本不存在,或者快取已經過期。通常來講,快取的命中率越高則表示使用快取的收益越高,應用的效能越好 響應時間越短 吞吐量越高 抗併發的能力越強。由此可見,在高併發...