欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

模式匹配like %xxx%优化一例

程序员文章站 2022-05-05 20:22:23
...

MySQL里likexxx%可以用到索引,但like%xxx%是不行的。mysqldescartist;+------------+-----------------------------------------------+------+-----+---------

MySQL里like 'xxx%'可以用到索引,但like '%xxx%'是不行的。

如这个例子:

现在来通过覆盖索引来进一步优化:

这里artist_id是主键(聚集索引),叶子节点上保存了数据(InnoDB引擎),select的artist_id列从索引中就能够取得,网站空间,不必读取数据行(只要你的SELECT字段正好就是索引,那么就用到了覆盖索引),通过覆盖索引,服务器空间,可以减少IO,提高了性能。

覆盖索引简单的说就是:我要在书里查找一个内容,但我这个目录写的很详细,我在目录中就获取到了,不需要再翻到该页查看。

之前的SQL执行时间:

模式匹配like %xxx%优化一例

优化后的SQL执行时间:

模式匹配like %xxx%优化一例

本文出自 “贺春旸的技术专栏” 博客,服务器空间,请务必保留此出处