作者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://www.ptt.cc/bbs/Database/M.1470864202.A.BDC.html
→ popcorny: 話說group by desc是不是等於gropu by x order by desc? 08/11 09:28
→ JeremyJoung: 是的 這是MySQL的專用縮寫 08/11 11:05
→ JeremyJoung: 效果等價於 GROUP BY gDate ORDER BY gDate DESC 08/11 11:06