2014-02-10 37 views
1

我試圖執行下面的查詢Mysql的GROUP BY查詢到30+秒執行

select COUNT(*) from tbl_impressions group by spackage 

,並花了大約40秒,第一次執行,但過一段時間後,相同的查詢在2秒內執行。

有沒有人知道原因?

PS:所有表格都已編入索引。

在此先感謝。

+1

大。我們無法閱讀頭腦,因此,請添加您的表結構和'EXPLAIN'輸出 –

+1

查詢正在編譯,優化程序發現一個執行計劃,之後所有內容都被緩存。 – Mihai

+0

http://stackoverflow.com/questions/2710621/count-vs-count1-vs-countpk-which-is-better – Damodaran

回答

0

之所以出現這種情況是:SELECT語句與 被髮送到客戶端的相應結果一起

查詢緩存存儲的文本。如果稍後收到相同的 語句,服務器將從 查詢緩存中檢索結果,而不是再次解析並執行該語句。 查詢緩存在會話中共享,因此可以發送由一個 客戶端生成的結果集,以響應另一個 客戶端發出的相同查詢。

請進一步提供文件看這裏http://dev.mysql.com/doc/refman/5.1/en/query-cache.html

+0

謝謝Christos Paisios – gurunglaxman0

+0

歡迎您! – Christos