了解 MySQL 查詢快取以及何時實施它?

了解 MySQL 查詢快取以及何時實施它?

在我們目前的 MySQL 伺服器上啟用了查詢快取。

Qchache_hits: 31913 
Qchache_inserts: 50959
Qchache_lowmem_prunes: 9320
Qchache_not_chached: 209320
Qchache_queries_in_chace: 986

com_update: 0
com_delete: 0
com_Select: 10

我不完全理解查詢快取 - 我目前正在閱讀它並試圖理解它。

我們的資料庫保存庫存資料、客戶資料、員工資料、銷售資料等。該查詢很少運行多次。查詢運行兩次的可能性是查看特定銷售資訊兩次。但基本上我們系統中的一切都在不斷變化。它總是被更新、刪除、插入,我無法想像用戶在一周內執行兩次相同的查詢。

我是否需要啟用查詢快取?我猜測插入意味著已添加 51k 條目,但只存儲了其中的 986 條?

是否有一個想法是刷新緩存,觀察一周並檢查緩存中的查詢有多少被訪問(可能每週一次),看看它是否真正返回了任何好處?

對此的任何幫助/指導表示讚賞,謝謝

答案1

是的,新增了 51k 個條目,現在只有 986 個。因此,大約有 50k 個條目被添加到快取中,但不再存在,其中 9k 個是因為快取中的記憶體不足,其餘的是因為插入/更新使快取條目無效。 Com_select 是一個參數,在嘗試決定您是否獲得福利時了解該參數很有用。但實際上這主要取決於快取的查詢。

如果您正在執行 select 語句,並且確信不會從快取中受益,則可以將 SQL_NO_CACHE 新增至 select 語句,請參閱文件在這裡

我推薦閱讀本文(以及整個部落格)。

相關內容