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

原创
2016-06-07 17:41:17 1360浏览

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

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

如这个例子:

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

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

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

之前的SQL执行时间:

优化后的SQL执行时间:

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

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。