作者JeremyJoung (J.J.)
看板Database
标题[SQL ] 很微妙的查询效能问题(ORDER BY)
时间Thu Aug 11 05:23:19 2016
资料库名称:MySQL 5.6
资料库版本:
内容/问题描述:
我有一个查询式如下 资料数量级15M
SELECT gDate, COUNT(*) c1 FROM car_gps GROUP BY gDate
SELECT gDate, COUNT(*) c1 FROM car_gps GROUP BY gDate ASC
我有做INDEX加速 INDEX大小1.24G
所以一般查询或是ASC时 费时都是10秒(CPU TIME)
但是当改成DESC时
SELECT gDate, COUNT(*) c1 FROM car_gps GROUP BY gDate DESC
查询时间瞬间暴增到324秒 而且全都是CPU时间 没有任何硬碟IO
我很意外的是 虽然我的INDEX确实是ASC排序
但DESC不就是把INDEX倒过来读而已吗?
为什麽效能这麽吃重 而且还都是CPU
不知道有没有神人知道其中的关键所在
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.163.72.102
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1470864202.A.BDC.html
1F:→ popcorny: 话说group by desc是不是等於gropu by x order by desc? 08/11 09:28
2F:→ JeremyJoung: 是的 这是MySQL的专用缩写 08/11 11:05
3F:→ JeremyJoung: 效果等价於 GROUP BY gDate ORDER BY gDate DESC 08/11 11:06