一,使用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 版權協議,轉載請附上原文出處鏈接和本聲明。
