[SQL ] 很微妙的查詢效能問題(ORDER BY)

看板Database作者 (J.J.)時間7年前 (2016/08/11 05:23), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串1/1
資料庫名稱: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

08/11 09:28, , 1F
話說group by desc是不是等於gropu by x order by desc?
08/11 09:28, 1F

08/11 11:05, , 2F
是的 這是MySQL的專用縮寫
08/11 11:05, 2F

08/11 11:06, , 3F
效果等價於 GROUP BY gDate ORDER BY gDate DESC
08/11 11:06, 3F
文章代碼(AID): #1NgvjAlS (Database)