[SQL ] MYSQL 查詢最新的前n筆資料速度很慢?

看板Database (資料庫)作者 (Piggy)時間15年前 (2009/08/14 09:24), 編輯推噓10(1002)
留言12則, 7人參與, 最新討論串1/3 (看更多)
小弟剛用MySQL 我在查詢最新的前n筆資料的時候是這樣下的 select * from fin order by date desc limit 5; 可是速度我覺得很慢 不知道有沒有更快速的方法? 其實我的fin資料表在記錄資料的時候就已經排序了 date 2009/08/01 2009/08/02 2009/08/03 . . 可是我不知道怎麼下達最新的前5筆資料(在不知道有多少資料的情況下) select * from fin limit 5; 是取最前面的5筆 謝謝 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.211.36.254

08/14 12:21, , 1F
MYSQL沒TOP可用嗎? 有ORDER指令會比較慢
08/14 12:21, 1F

08/14 12:25, , 2F
先count總筆數 再limit最後五筆 不知道會不會比較快..
08/14 12:25, 2F

08/14 12:30, , 3F
哈...樓上的方法我也用過...有比較快...不知是否有現成
08/14 12:30, 3F

08/14 12:33, , 4F
哈哈 因為我習慣用pagnition,所以一定都先count一次XD
08/14 12:33, 4F

08/14 13:42, , 5F
改成asc吧~ desc是遞減
08/14 13:42, 5F

08/14 16:25, , 6F
他要抓最新的5筆 用遞減是對的呀~
08/14 16:25, 6F

08/14 16:59, , 7F
如果另外產生最新5筆的view 會比較快嗎? 我是沒嘗試過
08/14 16:59, 7F

08/14 20:11, , 8F
請問如果是以時間做為條件呢? 資料庫中有數千萬筆...
08/14 20:11, 8F

08/14 23:10, , 9F
EXPLAIN select * from fin order by date desc limit 5;
08/14 23:10, 9F

08/17 12:31, , 10F
為何需要排序?
08/17 12:31, 10F

08/17 12:35, , 11F
select * from fin where date > current_date()-5;
08/17 12:35, 11F

08/17 12:43, , 12F
date 欄位建個索引
08/17 12:43, 12F
文章代碼(AID): #1AXBpg6P (Database)
文章代碼(AID): #1AXBpg6P (Database)