MySQL如何讓快取過期?

MySQL如何讓快取過期?

假設記憶體足夠,

MySQL如何判斷是從快取中取得還是重新查詢?

答案1

AFAIK mysql 當表格更改(插入、更新、刪除等)時,它的快取會自動過期

mysql通常會根據query_cache_limit和大小立即快取它,預設的query_cache_limit是1M,所以如果單一查詢變得更大,那麼它不會緩存,除非你改變它。

您必須確保您的查詢也相等,因為它考慮了區分大小寫的查詢。

除此之外,您可以使用以下命令來監視它:

SHOW STATUS LIKE '%qcache%';

例如,建立一個包含一些條目的表並運行:

SELECT id,name FROM my_table WHERE id > '2'; SHOW STATUS LIKE '%qcache%';

你會注意到快取的查詢數量增加了 1,現在再次執行相同的選擇,你會看到 mysql 已經在使用快取了,結果會發生得更快。

附加資訊

首先,您必須確保您有query-cache-type = 1my.cnf 或 my.ini,具體取決於作業系統/安裝。

從 mysql 中,您可以執行以下命令來驗證其狀態:

SHOW VARIABLES LIKE '%query_cache%';

列出資料時,您將看到查詢快取大小,如果設定為 0,則表示您的查詢快取已停用,該變數確定用於查詢快取的記憶體(以位元組為單位)。

正如您對查詢快取類型所做的那樣,將以下內容新增至您的 my.cnf 或 my.ini :

query-cache-size = 40M

相關內容