mysql like 不走索引怎么办

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql like 不走索引怎么办相关的知识,希望对你有一定的参考价值。

参考技术A 你这条语句的意思相当于查找test表中所有province为四川,并且city为成都,并且某个字段包含cpu的数据信息。注意:like前边是要有字段名的,你这样的写法是会报语法错误的。影响不影响的问题呢,就看你的查询目的是什么了,如果是查询四川并且成都,而又或者某字段包含cpu的数据,建议这样写:select * form test where (province = '四川' AND city = '成都') or 某字段 like '%CPU%';

Mysql - like 语句会不会走索引

参考技术A

答案是满足特定条件, ,如下:

原因是满足 最左前缀

最左前缀不仅仅适用于 组合索引 ,还适用于 varchar 的 like 语句,但是要注意,只有 like "XXX%" 的情况走索引, like "%XXX" 是不走索引的。

Mysql innodb 引擎默认的索引数据结构是 b+ 树,组合索引会形成多字段顺序排序,比如下图,会先按照姓名进行排序,姓名相等就再按照年龄排序,所以会有组合索引的最左前缀原理,而假如只 like 查询姓名,例如 like "张%" ,则也可以使用最左前缀原理,先索引到 张六 ,然后遍历查询,直到姓名不以 张 开头。

以上是关于mysql like 不走索引怎么办的主要内容,如果未能解决你的问题,请参考以下文章

mysql 不走索引的情况

问答 | MySQL 什么时候不走索引?

mysql 索引与优化like查询

MySQL like 在啥情况下会走索引

oracle SQL查询,用大于等于不走索引,怎么解决

Mysql查询in语句都走索引吗