模糊查询,比较喜欢使用like的,但是like很可能让你的索引失效。
1、反例
select * from citys where name like '%王' (不使用索引)
select * from citys where name like '%王%' (不使用索引)
3、正例
select * from citys where name like '王%' (使用索引) 。
3、理由
首先尽量避免模糊查询,如果必须使用,不采用全模糊查询,也应尽量采用右模糊查询, 即like ‘…%’,是会使用索引的;
左模糊like ‘%...’无法直接使用索引,但可以利用reverse + function index的形式,变化成 like ‘…%’;
全模糊查询是无法优化的,一定要使用的话建议使用搜索引擎。