MySQL - 強制不使用緩存來測試查詢速度

我正在測試MySQL中一些查詢的速度。 數據庫正在緩存這些查詢,這使我在測試這些查詢的速度時難以得到可靠的結果。 html

有沒有辦法禁用查詢緩存? mysql

系統:Linux上的MySQL 4虛擬主機,我能夠訪問PHPMyAdmin。 sql

謝謝 數據庫


#1樓

一個問題是 緩存

SELECT SQL_NO_CACHE * FROM TABLE

方法是它彷佛只是阻止查詢的結果被緩存。 可是,若是您要查詢正在與要測試的查詢一塊兒使用的數據庫,則其餘客戶端可能會緩存您的查詢,從而影響您的結果。 我正在繼續研究解決這個問題的方法,若是我找到一個,我會編輯這篇文章。 服務器


#2樓

嘗試在查詢中使用SQL_NO_CACHE (MySQL 5.7)選項。 (MySQL 5.6用戶點擊這裏性能

例如。 測試

SELECT SQL_NO_CACHE * FROM TABLE

這將阻止MySQL緩存結果,但請注意,其餘操做系統和磁盤緩存也可能會影響性能。 這些更難繞行。 spa


#3樓

您還能夠運行follow命令來重置查詢緩存。 操作系統

RESET QUERY CACHE

#4樓

我使用如下內容:

SHOW VARIABLES LIKE 'query_cache_type';
SET SESSION query_cache_type = OFF;
SHOW VARIABLES LIKE 'query_cache_type';

#5樓

還有配置選項:query_cache_size = 0

要在服務器啓動時禁用查詢緩存,請將query_cache_size系統變量設置爲0.經過禁用查詢緩存代碼,沒有明顯的開銷。 若是從源代碼構建MySQL,則能夠經過使用--without-query-cache選項調用configure來徹底從服務器中排除查詢緩存功能。

請參閱http://dev.mysql.com/doc/refman/5.1/en/query-cache.html

相關文章
相關標籤/搜索