mysql 加了orderby 查询速度超级慢怎么办

qq_17121221 2016-10-09 02:15:29
SELECT
DISTINCT c.uniqueid,
r.`name`,
r.CustomerPhone,
r.TocallerPhone,
r.bound,
r.Elapsed,
r.LastTime,
s.sourceName,
c.uniqueid,
c.recordingfile,
c.calldate
FROM
cdr c
JOIN recordInfo r ON c.uniqueid = r.niqueid
LEFT JOIN Source s ON r.callerIdNum = s.MobileNum
WHERE
1 = 1
AND c.disposition != 'NO ANSWER'
LIMIT 0, 10



SELECT
count(DISTINCT uniqueid)
FROM
cdr c
JOIN recordInfo r ON c.uniqueid = r.niqueid
LEFT JOIN Source s ON r.callerIdNum = s.MobileNum
WHERE
1 = 1
AND c.disposition != 'NO ANSWER'
...全文
6657 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
LongRui888 2016-11-16
  • 打赏
  • 举报
回复
引用 7 楼 qq_17121221 的回复:
索引都加了,心塞塞
光加索引也不一定能用上。 上面也说了,之所以快是因为limit 就是这个效果,快是正常的,慢才是怪事。 加上了order by之后,情况完全变化,如果查询出来有10w条数据,会先排序,然后取出前10条,所以这个时候,加个索引可能会有用,但是由于mysql本身的功能还不是很强,有可能这个索引加上了,mysql也不会去用。 如果是sql server,加上了一般都能用上。 你自己在多尝试吧,优化这个需要投入很多时间和精力,真给你优化出来,你的水平就上去了,大家只是给你出谋划策,关键还得靠你自己。
江南雪_158 2016-11-15
  • 打赏
  • 举报
回复
你看一下执行计划,有没有用索引
qq_17121221 2016-10-14
  • 打赏
  • 举报
回复
索引都加了,心塞塞
xiaoxiangqing 2016-10-11
  • 打赏
  • 举报
回复
数据量大,order by 是需要整个排序好,所以慢。
gong_jian628 2016-10-11
  • 打赏
  • 举报
回复
1.适当将排序字段加上索引
LongRui888 2016-10-11
  • 打赏
  • 举报
回复
不加order by之所以快,是由于limit 0,10 而加了order by之后,会把所有结果都排序,然后再取前10条,逻辑上完全不一样,查询结果也会不同。 要想速度快,可以先试试在 order by字段上加个索引试试
戒指 2016-10-11
  • 打赏
  • 举报
回复
引用 3 楼 gong_jian628 的回复:
1.适当将排序字段加上索引
那啥,可以给我个你的联系方式吗 有事找你.....急
qq_17121221 2016-10-09
  • 打赏
  • 举报
回复
目前差不多有30w数据,我只想加个orderby 时间 ,就要12秒多, orderby一拿掉就0.001
中国风 2016-10-09
  • 打赏
  • 举报
回复
查看执行计划 加Order By排序列非默认排序,慢是正常的

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧