Mysql 字段類型與查詢類型不一致致使索引使用失敗

今天優化數據庫的慢查詢,有一條Sql讓我百思不得其jie,就是他了。數據庫

SELECT * FROM test WHERE user_id=1;

explain 去分析一下優化

索引都有了,爲何還要掃描全表呢?相似的狀況,有在哪閃現過,就去查看錶結構,原來user_id這個字段是字符類型,作個記錄,以避免往後再犯傻。code

如下是用不到索引的幾種狀況
  • 表字段用的字符串類型,查詢的也應該是字符類型
  • LIKE 查詢
  • 對字段進行NULL判斷
  • 使用OR關鍵字查詢,使用UNION代替OR
相關文章
相關標籤/搜索