1. 程式人生 > >mysql 索引 create_time 加explain關鍵字是否走索引

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

SELECT * FROM t_user WHERE email='[email protected]';  --1.725 --加email索引之後 0.003

SELECT * FROM t_user WHERE email='[email protected]' 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 檢視是否走索引