艰辛的从25m的大日志 (数据库为mysql,但是大家知道, 这些都是相同的哦)挖掘出来下面的慢语句 ,有些我已经解决
但还是希望能抛出问题,集思广益。
1
select distinct id from Outcome where isHistory='N' order by id;
(
这是我的分析 ,如果有贤人大师更慧眼独具,欢迎指正或者添加
a isHistory 这里不应该设计为字符形, 应该搞为bool或者bit形式 ,
b Outcome 大表,有几十万条记录 ,这里distinct无疑是个巨大的操作,何况还有order by
查好多材料,据说mysql对orderby支持不是很好,但是业务要用 ,这条语句还是要执行的
)
(很奇怪 在编辑器跑这条sql,1秒不到就完,但是高峰时间为什么会10几秒都跑不完???)
2select distinct id from BettingOffer where isHistory='N' order by id;
同上面类似
3select log.userId, max(log.lastLoginTime) lastLoginTime, count(1) + 1 nrOfLogins from UserSessionLog log group by log.userId order by lastLoginTime desc limit 20;
这条语句过慢 但是确实不知道该如何优化