mysql - sql語句最佳化問題
女神的闺蜜爱上我
女神的闺蜜爱上我 2017-06-14 10:50:39
0
4
1032
select a,sum(b) from c GROUP BY a;
select a from c;

假設c表資料量上百萬,那要怎麼優化這2個數據,讓執行更快。
謝謝了

女神的闺蜜爱上我
女神的闺蜜爱上我

全部回覆(4)
三叔

沒辦法從索引上最佳化,你使用group by 而且沒有設定where條件,mysql已經全表讀取。而且假如是上百萬的數據,個人不主張在表中直接用sum去統計每個a的總數。建議優化是這樣的。
1.建立定時任務和臨時表、統計表
2.定時讀取一定量的數據,將那段數據統計信息記錄到統計表中,將獲取一定量數據的最後一個id值作為記錄,寫入臨時表。下次讀取時候以該id最為條件。

這樣分段統計,可以滿足你兩個最佳化條件

给我你的怀抱

先a字段加上索引吧

某草草

MySQL如何最佳化GROUP BY

黄舟

建立複合索引(a,b),兩個sql都會走索引掃描

另外對於統計類sql肯定是放在專門的報表庫做的,定時分段統計

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板