我的應用程序中有一個緩慢的mySQL查詢,需要重新編寫。問題是,它只在我的生產服務器上很慢,並且只有在它沒有被緩存時。我第一次運行它需要12秒,然後任何時候它將會是500毫秒。MySQL Single Query Benchmarking Strategies
有沒有簡單的方法來測試這個查詢沒有它擊中查詢緩存,所以我可以看到我的重構結果?
謝謝!
我的應用程序中有一個緩慢的mySQL查詢,需要重新編寫。問題是,它只在我的生產服務器上很慢,並且只有在它沒有被緩存時。我第一次運行它需要12秒,然後任何時候它將會是500毫秒。MySQL Single Query Benchmarking Strategies
有沒有簡單的方法來測試這個查詢沒有它擊中查詢緩存,所以我可以看到我的重構結果?
謝謝!
MySQL支持防止緩存單個查詢。嘗試
SELECT SQL_NO_CACHE field_a, field_b FROM table;
或者你可以diasble查詢緩存當前會話:
SET SESSION query_cache_type = OFF;
爲了增加約翰內斯的很好的答案,我做的是
RESET QUERY CACHE;
這有輕微增加的優點e不需要對正在執行的語句或連接進行任何更改。
一個微不足道的事情就是改變你以某種方式執行的語句,比如在註釋中放置一個隨機數,因爲只有當查詢與前面的一些查詢字節相同時,查詢才位於緩存中。