Mysql
我可以告訴 MySQL 記憶體什麼嗎?
很簡單的問題:
假設我有一個我知道經常使用的特定查詢,我可以告訴 MySQL 始終“自動”記憶體它嗎……即,一旦記憶體的查詢結果被刷新,
mysqld
立即再次執行該查詢以使記憶體的數據準備好下一個使用者?或者反過來:我可以告訴 MySQL 不要記憶體特定的查詢嗎?其他記憶體選項呢,不一定與查詢相關?
我在網上搜尋了這個,但找不到任何相關的東西。
MySQL 文件有SQL_NO_CACHE選項:
可以在 SELECT 語句中指定兩個與查詢記憶體相關的選項:
SQL_CACHE
如果查詢結果可記憶體且 query_cache_type 系統變數的值為 ON 或 DEMAND,則查詢結果將被記憶體。
SQL_NO_CACHE
伺服器不使用查詢記憶體。它既不檢查查詢記憶體以查看結果是否已記憶體,也不記憶體查詢結果。(由於解析器的限制,空格字元必須在 SQL_NO_CACHE 關鍵字之前和之後;非空格字元(例如換行符)會導致伺服器檢查查詢記憶體以查看結果是否已記憶體。)
例子:
SELECT SQL_CACHE id, name FROM customer; SELECT SQL_NO_CACHE id, name FROM customer;
您可以通過設置 query_cache_type 將 SQL_NO_CACHE 設置為會話的預設值
SET query_cache_type = 'DEMAND';
要麼
SET query_cache_type = 2;
之後,你必須說
SELECT SQL_CACHE
讓它記憶體SELECT