mysql - 請問這條sql如何加索引優(yōu)化?
問題描述
請問這條sql如何加索引優(yōu)化?
select userid,sum(coin) as total from jiuwo_gift.user_consume where time >= ’2016-11-07 20:47:27’ group by userid order by total desc limit 10;
說明:數(shù)據(jù)表始終只有一個月的數(shù)據(jù),每天會定時清除一個月之前的數(shù)據(jù)。具體場景就不說明了。這條sql對現(xiàn)在影響也不大,查詢的數(shù)據(jù)結(jié)果會放redis緩存,不是頻繁查詢,查詢耗時1s左右,只是想如何更好優(yōu)化這個sql.
問題解答
回答1:索引的話你需要在 排序和條件上加索引,但是你的total是sum出來的索引沒法加。。。。那你只能在time上加索引
回答2:userid 是主鍵把,單看這一句sql,只需要userid這個主鍵就可以了
給time加索引運(yùn)行的時候浪費(fèi)內(nèi)存,感覺利大于弊
coin使用了函數(shù),加索引沒意義
回答3:從性能角度看,應(yīng)該創(chuàng)建一個索引,字段順序?yàn)閠ime,userid,coin這樣數(shù)據(jù)庫僅從索引盡可以執(zhí)行這個sql語句
另外,建議附上執(zhí)行計(jì)劃,以及表的總數(shù)量、每天數(shù)據(jù)量等數(shù)據(jù),方便其他人進(jìn)行分析。
相關(guān)文章:
1. vim - docker中新的ubuntu12.04鏡像,運(yùn)行vi提示,找不到命名.2. mac連接阿里云docker集群,已經(jīng)卡了2天了,求問?3. docker網(wǎng)絡(luò)端口映射,沒有方便點(diǎn)的操作方法么?4. 為什么我ping不通我的docker容器呢???5. angular.js - angular內(nèi)容過長展開收起效果6. phpstudy8.1沒集成mysql-front7. html5和Flash對抗是什么情況?8. 我何時應(yīng)該在Java中使用JFrame.add(component)和JFrame.getContentPane()。add(component)9. 利用IPMI遠(yuǎn)程安裝centos報(bào)錯!10. 前端 - @media query 使用出現(xiàn)的問題?

網(wǎng)公網(wǎng)安備