关于like和索引

name like '%'+name+'%'是不使用索引的

name like name+'%'是使用索引的

其实仔细考虑索引的原理就明白了。
例如,like 'aaa%',因为 aaa在前面,可以在索引里面找aaa开头的纪录。 like '%aaa'就不行,aaa是在中间的,只能一条一条找了。

还有如下情况不能用到索引:
1.在列上使用函数
2.对列进行拼接(group_concat);
3.显式或隐式使用 NOT 关键字
4.对列的隐式的类型转换

是否使用索引可以使用(explain)查看

Explain Select m.qr , m.qrr , tj.qr , tj.qrrq from ipos_zdjhd m,ipos_zdjhdtj tj where m.ydjh='17233' and tj.djbh='48632';

原文地址:https://www.cnblogs.com/hanshuai0921/p/6428548.html