SELECT *
FROM tab c
WHERE c.status = 1
ORDER BY c.id ASC
LIMIT 0, 20
這個執行有50s+,檢索出來1條符合條件的資料, 這個表5.7g,1896002條記錄
有啥好的優化方案么,那么多的重復資料,+索引好么?
uj5u.com熱心網友回復:
在id上建立一個聚集索引就不會那么慢了,再在status上建一個非聚集索引就更不慢了uj5u.com熱心網友回復:
滿足條件的資料占比大,考慮 status+id 的復合索引,否則考慮 id+ status 的復合索引如果表的資料總量不是非常大的話,復合索引可以改成單鍵索引( 只保留第一列)
uj5u.com熱心網友回復:

老趨出來活動啦!
uj5u.com熱心網友回復:
千萬級別的資料mysql還是可以的,使用explain來查看執行計劃,然后嘗試使用index、partion方案來除錯。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/101060.html
標籤:MySQL
下一篇:MySQL 字符集問題
