1. 程式人生 > 實用技巧 >MySQL索引失效的幾種情況

MySQL索引失效的幾種情況

一,使用Like關鍵字查詢語句

首先看下我的測試表的行數:

select  count(0) from tb_user

結果如下:

一共16行。

使用like '% ':

explain select * from tb_user where username like '%si'

分析結果:

發現查詢了16行,吼吼~~就是全查唄~

next:

explain select * from tb_user where username like 'li%'

結果:

發現只掃了2行就get到了。

小結:

在使用like 開頭進行查詢是,如果匹配字串的第一個字元為'%',索引不會起作用,只有‘%’不在第一個字元,索引才會起作用。

二,使用多列索引的查詢語句

首先插入多列的索引:

create index testIndex on tb_user(username,phone)
show index from tb_user

之後根據手機號進行查詢:

之後根據ID進行查詢:

可以看出在以username跟phone同時作為主鍵的時候,按照phone進行查詢,掃描16行,但是按照username查詢,掃描1行。

小結:

對於多列索引,查詢的時候只有使用了多列索引的第一個欄位,索引才會生效。

三,使用OR關鍵字

分析查詢語句:

explain select * from tb_user where phone=
1370348890 or id=3

當使用or關鍵字進行查詢時候,只有當or兩邊的查詢條件都是索引列時候,才使用索引。

版權宣告:本文為博主原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結和本宣告。

本文連結:https://blog.csdn.net/weixin_34194087/article/details/90304651