自己动手,探究真谛!!!!
根据网上说什么like前面加%索引失效,like后面加百分号索引不失效,实验后,小编只想说四个字“纯粹瞎扯”!!!哈哈哈哈
上图:
首先小编创建一个bbb表里面创建了三个字段id,name, age
然后该表的数据如下
因为数据不是重点,小编就忽略了,乱添加数据,各位原神请见谅!!
上图:然后构建age字段的普通索引
然后咱们先来验证--->网上说什么like前面加%索引失效,like后面加百分号索引不失效
啥话不说,上图!!
当age前面增加%,通过explain关键字,发现type类型是index,而并不是ALL!!!!!,然后Extra的意思里面写的是index Using where; Using index
然后再说like前面加%情况
直接上图:
然后发现like前面加百分号,type类型还是index,Extra描述还是Using where; Using index,所以小编想请问一下,那些说(什么like前面加%索引失效,like后面加百分号索引不失效)有什么依据???
根据这两条通过explain分析的sql语句发现,前面加%的sql语句的filtered是14.29,后面加%的sql语句的filtered是100,所以看explain的分析后,我们发现like前面加%比like后面加%的效率高一些,但是不能一概而论,(like前面加%索引失效,like后面加百分号索引不失效)错!!!
究竟索引什么时候会失效,什么时候会有效,小编将一个一个测试,请听小编下回分解!!!