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

Posted hadley

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决like '%字符串%'时索引不被使用的方法相关的知识,希望对你有一定的参考价值。

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

 

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

工具/原料

 

方法/步骤

 
  1.  

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

    技术分享图片
  2.  

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

    技术分享图片
  3.  

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

    技术分享图片
  4.  

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

    技术分享图片
  5.  

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

    技术分享图片
  6.  

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

    技术分享图片
     

以上是关于解决like '%字符串%'时索引不被使用的方法的主要内容,如果未能解决你的问题,请参考以下文章

Mysql like ' ' 会不会用到索引

MySQL中B+树索引的应用场景大全

MySQL中B+树索引的应用场景大全

sqlserver的like '%xxx%'优化,全文索引

mysql like 不走索引怎么办

a bytes-like object is required,not str'怎么解决?