MySql之索引

1.在使用LIKE关键字进行模糊查询时,查询如果是 %a、_a不会使用到索引,而aaa%、a%b、a_b会使用到索引。也就是说,关键字的开头必须是确定的,index才会产生作用,比如:

explain select * from user where dname like '%5a'\G

不能使用索引,即,在like查询时,关键字最前面,不能使用 % 或者 _这样的字符, 如果一定要前面有变化的值,则考虑使用全文索引->sphinx。

接下来我们进行测试,首先建立一个简单的表,并在password字段上建立了普通索引,如下图所示:
MySql之索引_第1张图片

由下图所示,采用%5的模糊查询时,type为all,同时key为null,那么mysql采用了全表扫描,并没有采用index。
MySql之索引_第2张图片

当采用5%的模糊查询时,type为range,同时可以为password,显然采用了index。
MySql之索引_第3张图片

你可能感兴趣的:(MySql)