文章詳情頁
mysql - sql語句優化問題
瀏覽:137日期:2022-06-11 13:51:54
問題描述
select a,sum(b) from c GROUP BY a;select a from c;
假設c表數據量上百萬,那怎么優化這2條數據,讓執行更快。謝謝了
問題解答
回答1:沒法從索引上優化,你使用group by 而且沒有設定where條件,mysql已經全表讀取。而且假如是上百萬的數據,個人不提倡在表中直接用sum去統計每個a的總數。建議優化是這樣的。1.建立定時任務和臨時表、統計表2.定時讀取一定量的數據,將那段數據統計信息記錄到統計表中,將獲取一定量數據的最后一個id值作為記錄,寫入臨時表。下次讀取時候以該id最為條件。
這樣分段統計,可以滿足你兩個優化條件
回答2:先a字段加上索引吧
回答3:MySQL如何優化GROUP BY
回答4:建立復合索引(a,b),兩個sql都會走索引掃描
另外對于統計類sql肯定是放在專門的報表庫做的,定時分段統計
相關文章:
1. 數組按鍵值封裝!2. Docker for Mac 創建的dnsmasq容器連不上/不工作的問題3. java - 阿里的開發手冊中為什么禁用map來作為查詢的接受類?4. docker不顯示端口映射呢?5. javascript - webpack中alias配置中的“@”是什么意思?6. 主題切換問題,用過別人的webapp在后臺切換模板主題后手機端打開網頁就是切換到的主題了7. python - flask _sqlalchemy 能否用中文作為索引條件8. javascript - 為什么創建多行多列的表格最后只有一行內有表格9. javascript - ES6規范下 repeat 函數報錯 Invalid count value10. html5 - 使用echarts中的圖表 一個頁面導入了好幾個js圖表 實現echarts圖表隨著瀏覽器窗口變化而變化時出現了問題
排行榜
