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

WBOY
WBOYオリジナル
2016-06-07 17:41:171782ブラウズ

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

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

如这个例子:

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

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

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

之前的SQL执行时间:

优化后的SQL执行时间:

 

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。