文章詳情頁
mysql - sql語句優(yōu)化問題
瀏覽:218日期:2022-06-11 13:51:54
問題描述
select a,sum(b) from c GROUP BY a;select a from c;
假設(shè)c表數(shù)據(jù)量上百萬,那怎么優(yōu)化這2條數(shù)據(jù),讓執(zhí)行更快。謝謝了
問題解答
回答1:沒法從索引上優(yōu)化,你使用group by 而且沒有設(shè)定where條件,mysql已經(jīng)全表讀取。而且假如是上百萬的數(shù)據(jù),個人不提倡在表中直接用sum去統(tǒng)計每個a的總數(shù)。建議優(yōu)化是這樣的。1.建立定時任務(wù)和臨時表、統(tǒng)計表2.定時讀取一定量的數(shù)據(jù),將那段數(shù)據(jù)統(tǒng)計信息記錄到統(tǒng)計表中,將獲取一定量數(shù)據(jù)的最后一個id值作為記錄,寫入臨時表。下次讀取時候以該id最為條件。
這樣分段統(tǒng)計,可以滿足你兩個優(yōu)化條件
回答2:先a字段加上索引吧
回答3:MySQL如何優(yōu)化GROUP BY
回答4:建立復(fù)合索引(a,b),兩個sql都會走索引掃描
另外對于統(tǒng)計類sql肯定是放在專門的報表庫做的,定時分段統(tǒng)計
相關(guān)文章:
1. 運行python程序時出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯誤?2. spring-mvc - spring-session-redis HttpSessionListener失效3. javascript - QQ第三方登錄的問題4. 在mac下出現(xiàn)了兩個docker環(huán)境5. node.js - mongodb查找子對象的名稱為某個值的對象的方法6. 利用IPMI遠程安裝centos報錯!7. 測試自動化html元素選擇器元素ID或DataAttribute [關(guān)閉]8. 正在使用electron和node.js做桌面應(yīng)用,需要實時監(jiān)聽是否有網(wǎng)絡(luò)連接,node或者electron是否可以做到9. javascript - 在 model里定義的 引用表模型時,model為undefined。10. java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統(tǒng)有創(chuàng)建日志文件,不寫入日志信息。
排行榜

熱門標(biāo)簽
網(wǎng)公網(wǎng)安備