2010-07-07 51 views
4

我正在執行一個mysql SELECT語句,它需要30秒才能第一次運行,但之後只需要.2次。強制執行mysql SELECT查詢以不使用緩存

我認爲清除查詢緩存可以解決問題(RESET QUERY CACHE),但它仍然需要0.2秒。只有重新啓動服務器才能將查詢恢復爲30秒,但在第一次運行後需要花費0.2秒。添加SQL_NO_CACHE也不起作用。

查詢:

SELECT id FROM tblOne WHERE szAddress = '123 Main Street' AND szCity = 'LAS VEGAS' AND szStateCode = 'NV' 

說明:

"id","select_type","table","type","possible_keys","key","key_len","ref","rows","Extra" 
1,"SIMPLE","tblOne","ref","szCity_2,idx_state_active","szCity_2","52","const",62620,"Using where" 

是否有另一種方式來獲得這種反覆運行緩慢(無需重新啓動服務器),所以我可以測試增加新的指標,他們的表現?

我打算增加一個地址或地址+城市+州指數。

回答

3

SQL_NO_CACHE應該是這樣做的。我偶然發現了配置中的某些東西,如果它承認或不尊重,您可以更改它,以便檢查它。

此外,http://www.mysqlperformanceblog.com/2007/09/12/query-profiling-with-mysql-bypassing-caches/

E:MySQL - force not to use cache for testing speed of query有幾個其他的解決方案,以同樣的問題。

+0

第一個鏈接給了我需要的信息,我使用了innodb,看起來好像答案是你需要重新啓動。 – Christopher 2010-07-08 15:33:06