1.这个真的是难受哦  因为经常使用这个 所以还是要小心点 在看为什么失效之前 我们先看一下 Like % 的解释

注意: 如果在使用like操作符时,后面的没有使用通用匹配符效果是和=一致的,

SELECT * FROM products WHERE products.prod_name like '1000';

2.匹配包含"Li"的记录(包括记录"Li") :

SELECT* FROM products WHERE products.prod_name like '%Li%';

3.匹配以"Li"结尾的记录(包括记录"Li",不包括记录"Li ",也就是Li后面有空格的记录,这里需要注意)

SELECT * FROM products WHERE products.prod_name like '%Li';

在左不走 在右走

右:

虽然走 但是索引级别比较低主要是模糊查询 范围比较大 所以索引级别就比较低

https://image.z.itpub.net/zitpub.net/JPG/2023-03-23/DC1F26F60696017B81F6F3A88D0D3E12.jpg

左:这个范围非常大 所以没有使用索引的必要了 这个可能不是很好优化 还好不是一直拼接上面的

https://image.z.itpub.net/zitpub.net/JPG/2023-03-23/2BD3CF162AC5442092DA01D8DD1C5EFD.jpg

小总结

索引的时候和查询范围关系也很大 范围过大造成索引没有意义从而失效的情况也不少

为什么 like 关键字左或者左右模糊匹配无法走索引呢。为name建立索引,查询Like ’%林‘ 的索引过程