mysql模糊查询索引失效问题及解决方案

mysql模糊查询索引失效问题及解决方案

我们在使用like %通配符时常常会引起索引失效的问题。
这里,我们讨论一下like使用%的几种情况:
下列例子用到的索引(VC_STUDENT_NAME)
一、like ‘xx%’

EXPLAIN select * from t_student where VC_STUDENT_NAME like ‘王%’
在这里插入图片描述我们发现使用%不放在开头的时候,索引是有效的

二、like ‘%xx’

EXPLAIN select * from t_student where VC_STUDENT_NAME like ‘%王’
在这里插入图片描述我们发现%放在开头时,索引便失效了。

上述两个例子说明,在使用通配符时,%放在开头会引起索引失效。
但在现实问题里,往往需要把%放在开头作模糊匹配。这是我们可以通过覆盖索引的方式即索引覆盖查询,来解决索引失效的问题。

EXPLAIN select * from t_student where VC_STUDENT_NAME like ‘%王’
在这里插入图片描述把查询列换成索引与之相应的列,索引失效问题得以解决。

你可能感兴趣的:(mysql模糊查询索引失效问题及解决方案)