解决like '%字符串%'时索引不被使用的方法
解决like '%字符串%'时索引不被使用的方法,如果like以通配符开头('%abc')时索引会失效会变成全表扫描的操作。
工具/原料
- mysql
方法/步骤
-
如果like以通配符开头('%abc')时索引会失效会变成全表扫描的操作。那么我们改如何解决这个问题。
-
现在我们建立一个tbl_user表,并加入如下图的数据。
-
我们现在在建立索引之前查看sql的执行计划。执行的是全表扫描。
-
现在我们建立name和age的覆盖索引。
-
现在我们再来看一下这个like的执行计划,查看是否使用了索引。我们现在的like使用到了索引。
-
如果非得使用like使用索引的话,就要使用覆盖索引来解决,你建的索引和查询的字段上一样。