1. 程式人生 > >關於QueryCache的一次打臉

關於QueryCache的一次打臉

默認 進行 lec mysql l數據庫 命中 stat 什麽 關於

背景問題

  前一段時間給一套MySQL數據庫加上了監控,運行一段時間後有人反饋監控到的insert,update,delete,select的數量中select的數量有像比

  本應該的量少了不少!

  我用的是Com_select這個status來監控的select語句的數量,應該不會有什麽差錯呀;沒想到呀,沒想到!那個數據庫實例是開啟了Query

  cache的,所以這個就紮心啦! 這種情況下Com_select只是記錄了select語句中沒有命中Query_cache的那一部分。

默認情況下的select統計方式

  默認情況下沒有開啟Query_cache所以我們可以用Com_select這個status來監控MySQL處理的select語句總數;

  所以總的處理成功的select語句的數量就是 Com_select的值

Query_cache開啟情況下select的統計方式

  在Query_cache開啟的情況下針對select語句的統計要分兩種情況進行討論

  1): 如果這條select語句命中了Query_cache那麽Qcache_hits這個status就會加1,Com_select不受影響

  2):如果這條select語句沒有命中Query_cache那麽Com_select這個status加1,Querycache_hit不受影響

  所以總的select語句的數量就是Com_select + Querycache_hits 的值

  Query cache的命中率就是 Querycache_hits / (Com_select + Querycache_hits)

-----

關於QueryCache的一次打臉