1. 程式人生 > >MySQL無法命中索引的情況總結

MySQL無法命中索引的情況總結

  1. 使用or關鍵字會導致無法命中索引
  2. 左前導查詢回到著無法命中索引,如 like '%a'或者 like '%a%'
  3. 單列索引的索引列為null時全值匹配會使索引失效,組合索引全為null時索引失效
  4. 組合索引不符合左字首原則的列無法命中索引,如我們有4個列a、b、c、d,我們建立一個組合索引INDEX(`a`,`b`,`c`,`d`),那麼能命中索引的查詢為a,ab,abc,abcd,除此之外都無法命中索引
  5. 強制型別轉換會導致索引失效
  6. 如果mysql估計全表查詢會比使用索引快,那麼則不會使用索引
  7. 負向查詢條件會導致無法使用索引,比如NOT IN,NOT LIKE,!=等