mysql 索引 create_time 加explain關鍵字是否走索引


SELECT * FROM t_user WHERE email='217@xxg.com';  --1.725 --加email索引之后 0.003

SELECT * FROM t_user WHERE email='316@xxg.com' LIMIT 1; 0.001  --加email索引之后 0.002

結論:用戶數據量很大的情況下 如果查詢加了limit 無索引 根據唯一列查詢 加索引和不加索引 查詢差距不大 會走主鍵 聚集索引  只要到上千萬或是上億的數據的時候才會有影響

盡量用戶唯一的字段查詢會很快

 

--按時間降序全表查詢 不加limit

SELECT * FROM t_user  order by create_time desc  --11.184

SELECT * FROM t_user  order by create_time desc limit 1,10 --加limit 2.144

結論:在500萬測試數據,沒有時間索引的況下,直接order by  create_time 會全表掃描 不建議如此寫會拖垮數據庫 必須用到降序的時候一定加上limit 限制返回條數

--創建create_time 索引之后

SELECT * FROM t_user  order by create_time desc  --11.156

SELECT * FROM t_user  order by create_time desc limit 1,10 0.002

結論:創建create_time 時間索引 但是 直接order_by 時間 還是會導致全表掃描,加不加索引沒用,所以必須加上limit 受影響行數 才會走索引      explain SELECT * FROM t_user  order by create_time desc limit 1,10 0.002    語句加 explain 查看是否走索引


免責聲明!

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



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