我正在測試MySQL中一些查詢的速度。 數據庫正在緩存這些查詢,這使我在測試這些查詢的速度時難以得到可靠的結果。 html
有沒有辦法禁用查詢緩存? mysql
系統:Linux上的MySQL 4虛擬主機,我能夠訪問PHPMyAdmin。 sql
謝謝 數據庫
一個問題是 緩存
SELECT SQL_NO_CACHE * FROM TABLE
方法是它彷佛只是阻止查詢的結果被緩存。 可是,若是您要查詢正在與要測試的查詢一塊兒使用的數據庫,則其餘客戶端可能會緩存您的查詢,從而影響您的結果。 我正在繼續研究解決這個問題的方法,若是我找到一個,我會編輯這篇文章。 服務器
嘗試在查詢中使用SQL_NO_CACHE (MySQL 5.7)選項。 (MySQL 5.6用戶點擊這裏 ) 性能
例如。 測試
SELECT SQL_NO_CACHE * FROM TABLE
這將阻止MySQL緩存結果,但請注意,其餘操做系統和磁盤緩存也可能會影響性能。 這些更難繞行。 spa
您還能夠運行follow命令來重置查詢緩存。 操作系統
RESET QUERY CACHE
我使用如下內容:
SHOW VARIABLES LIKE 'query_cache_type'; SET SESSION query_cache_type = OFF; SHOW VARIABLES LIKE 'query_cache_type';
還有配置選項:query_cache_size = 0
要在服務器啓動時禁用查詢緩存,請將query_cache_size系統變量設置爲0.經過禁用查詢緩存代碼,沒有明顯的開銷。 若是從源代碼構建MySQL,則能夠經過使用--without-query-cache選項調用configure來徹底從服務器中排除查詢緩存功能。