需求說明
產品需要統計一段時間范圍內每月用戶的注冊人數(根據用戶信息表中的創建時間),需要我通過SQL導出數據,但是數據量太大,導出需要20多秒,於是我嘗試在創建時間字段中加索引,但是發現加了索引后索引失效了,通過limit限制數量后索引才生效。
實戰操作
無索引時查詢的時間26秒多和記錄數量為10萬+
創建時間字段加索引
加索引后發現還是很慢,於是通過EXPLAIN命令查看執行情況,發現還是全表掃描,沒有使用索引。
通過LIMIT限制數量后再EXPALIN查看執行命令
總結
隨着表的增長,where條件出來的數據太多可能會使得索引失效(會導致CBO優化器計算走索引花費大於走全表)