mysql - 請(qǐng)問(wèn)這條sql如何加索引優(yōu)化?
問(wèn)題描述
請(qǐng)問(wèn)這條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;
說(shuō)明:數(shù)據(jù)表始終只有一個(gè)月的數(shù)據(jù),每天會(huì)定時(shí)清除一個(gè)月之前的數(shù)據(jù)。具體場(chǎng)景就不說(shuō)明了。這條sql對(duì)現(xiàn)在影響也不大,查詢的數(shù)據(jù)結(jié)果會(huì)放redis緩存,不是頻繁查詢,查詢耗時(shí)1s左右,只是想如何更好優(yōu)化這個(gè)sql.
問(wèn)題解答
回答1:索引的話你需要在 排序和條件上加索引,但是你的total是sum出來(lái)的索引沒(méi)法加。。。。那你只能在time上加索引
回答2:userid 是主鍵把,單看這一句sql,只需要userid這個(gè)主鍵就可以了
給time加索引運(yùn)行的時(shí)候浪費(fèi)內(nèi)存,感覺(jué)利大于弊
coin使用了函數(shù),加索引沒(méi)意義
回答3:從性能角度看,應(yīng)該創(chuàng)建一個(gè)索引,字段順序?yàn)閠ime,userid,coin這樣數(shù)據(jù)庫(kù)僅從索引盡可以執(zhí)行這個(gè)sql語(yǔ)句
另外,建議附上執(zhí)行計(jì)劃,以及表的總數(shù)量、每天數(shù)據(jù)量等數(shù)據(jù),方便其他人進(jìn)行分析。
相關(guān)文章:
1. windows誤人子弟啊2. mysql優(yōu)化 - MySQL如何為配置表建立索引?3. 實(shí)現(xiàn)bing搜索工具urlAPI提交4. 關(guān)于mysql聯(lián)合查詢一對(duì)多的顯示結(jié)果問(wèn)題5. 數(shù)據(jù)庫(kù) - Mysql的存儲(chǔ)過(guò)程真的是個(gè)坑!求助下面的存儲(chǔ)過(guò)程哪里錯(cuò)啦,實(shí)在是找不到哪里的問(wèn)題了。6. 我在網(wǎng)址中輸入localhost/abc.php顯示的是not found是為什么呢?7. 如何用筆記本上的apache做微信開(kāi)發(fā)的服務(wù)器8. python - linux怎么在每天的凌晨2點(diǎn)執(zhí)行一次這個(gè)log.py文件9. MySQL主鍵沖突時(shí)的更新操作和替換操作在功能上有什么差別(如圖)10. 冒昧問(wèn)一下,我這php代碼哪里出錯(cuò)了???
