mysql在使用like查询中,能不能用到索引?在什么地方使用索引呢?
在
使用like的时候,如果
使用‘%%’,会
不会用到索引呢?
EXPLAIN SELECT * FROM `user` WHERE username
LIKE '%ptd_%';
上面的结果是全表扫描(
type == ALL),并没有
使用到索引。
只是
使用一个%的查询结果:
EXPLAIN SELECT * FROM `user` WHERE username
LIKE 'ptd_%';
这个
使用到
了索引(
type == range)。
EXPLAIN SELECT * FROM `user` WHERE username
LIKE '%ptd_';
在前面
使用%时也是全表扫描,没有
使用到索引。
综上,
mysql在
使用like查询的时候只有
不以%开头的时候,才会使用到索引。