mysql 模糊查询 like 使用索引状况分析
程序员文章站
2022-06-02 19:07:25
...
前言:
mysql 创建索引大部分是为了快速查询,但有时候会发现查询语句并没有大多提升,这里面终究是有些故事的。
1.模糊查询 like 引用索引分析
先直接给个结论,然后我们再分析
select * from table where name like 'jonny%';
select * from table where name like '%jonny%';
如果 name 字段加了索引,第一条查询是会使用到索引的,第二条不会,具体原因不深究,我们可以用 mysql 的 explain 命令分析一下。
explain select * from table where name like 'jonny%';
查询结果输出字段如下:
id:选择标识符
select_type:表示查询的类型。
table:输出结果集的表
partitions:匹配的分区
type:表示表的连接类型
possible_keys:表示查询时,可能使用的索引
key:表示实际使用的索引
key_len:索引字段的长度
ref:列与索引的比较
rows:扫描出的行数(估算的行数)
filtered:按表条件过滤的行百分比
Extra:执行情况的描述和说明
主要看 key 字段,其表示实际用到的索引,推荐建个表试一下,实操比博客更有说服力。