1. 程式人生 > >有些 where 條件會導致索引無效

有些 where 條件會導致索引無效

sdn alt 生效 color nbsp 時間 where 導致 ron

在查詢中,WHERE 條件也是一個比較重要的因素,盡量少並且是合理的 where
條件是徆重要的,盡量在多個條件的時候,把會提取盡量少數據量的條件放在前
面,減少後一個 where 條件的查詢時間。
有些 where 條件會導致索引無效:
? 1.where 子句的查詢條件裏有!=,MySQL 將無法使用索引。


? 2.where 子句使用了 Mysql 函數的時候,索引將無效,比如:select * from tb
where left(name, 4) = ‘xxx‘


? 3.使用 LIKE 迕行搜索匹配的時候,返樣索引是有效的:select * from tbl1
where name like ‘xxx%‘,而 like ‘%xxx%‘ 時索引無效

  4.不匹配的數據類型 char 搜索的時候 where name=你好 應該用 where name=‘你好‘ 如果列類型是字符串,那一定要在條件中將數據使用引號引用起來,否則不使用索引

5.在Where子句中使用IS NULL或者IS NOT NULL。

6.如果條件中有or,即使其中有條件帶索引也不會使用(這也是為什麽盡量少用or的原因)

技術分享圖片技術分享圖片

 註意:要想使用or,又想讓索引生效,只能將or條件中的每個列都加上索引

有些 where 條件會導致索引無效