記一次MySQL數據庫order by 主鍵 查詢很慢的解決過程


近日在項目中嘗試使用如下語句返回列表

select * from dtu_log as l left join e as e on l.dlog_ele=e.id where 1=1 and e.maint_com=1 order by dlog_id desc limit 0,20

數據總量90w
查詢耗時要5.5156秒多,無法接收
使用EXPLAIN查詢,發現l並沒有使用dlog_id作為索引
最終使用FORCE INDEX (PRIMARY) 強制索引解決該問題

修改后的語句為

select * from dtu_log as l FORCE INDEX (PRIMARY) left join e as e on l.dlog_ele=e.id where 1=1 and e.maint_com=1 order by dlog_id desc limit 0,20

同樣的數據,修改后查詢耗時0.0016秒
有了很好的改善,特此記錄一次


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM