2013-08-28 47 views
0

您好我有這樣修改mysql的查詢計劃類型

 SELECT (SELECT CSN FROM apps as b WHERE 
     a.key1=b.key1 AND a.key2 = b.key2 AND b.seq=MAX(b.seq) LIMIT 0,1) AS CSN, 
     a.key1 
FROM apps as a GROUP BY key1, key2 

查詢現在,當我使用EXPLAIN我得到的類型是範圍和額外的「使用索引分組依據」。 這個計劃需要10秒鐘才能在一張350,000行的桌子上完成。然而,有時候它只需要4秒鐘,而執行計劃是類型:索引和額外:使用其中

所以問題是爲什麼會發生這種情況,一旦計劃是第一次和第二次,我可以莫名其妙地改變計劃?

+0

考慮提供DDL和/或sqlfiddle – Strawberry

回答

0

Okey我想通了。 InnoDB統計數據可能已關閉。我打電話給分析表更新統計數據,現在回到較低的數字。