解决like '%字符串%'时索引不被使用的方法

解决like '%字符串%'时索引不被使用的方法

 

解决like '%字符串%'时索引不被使用的方法,如果like以通配符开头('%abc')时索引会失效会变成全表扫描的操作。

工具/原料

 
  • mysql

方法/步骤

 
  1.  

    如果like以通配符开头('%abc')时索引会失效会变成全表扫描的操作。那么我们改如何解决这个问题。

    解决like '%字符串%'时索引不被使用的方法
  2.  

    现在我们建立一个tbl_user表,并加入如下图的数据。

    解决like '%字符串%'时索引不被使用的方法
  3.  

    我们现在在建立索引之前查看sql的执行计划。执行的是全表扫描。

    解决like '%字符串%'时索引不被使用的方法
  4.  

    现在我们建立name和age的覆盖索引。

    解决like '%字符串%'时索引不被使用的方法
  5.  

    现在我们再来看一下这个like的执行计划,查看是否使用了索引。我们现在的like使用到了索引。

    解决like '%字符串%'时索引不被使用的方法
  6.  

    如果非得使用like使用索引的话,就要使用覆盖索引来解决,你建的索引和查询的字段上一样。

    解决like '%字符串%'时索引不被使用的方法
     

posted on 2018-08-06 22:47  hadley2012  阅读(1028)  评论(0编辑  收藏  举报

导航