php - mysql模糊查询,有比like更高效的么
黄舟
黄舟 2017-04-11 09:16:40
[PHP讨论组]

因为咱们是将一条数据的基本信息全部糅合到一个字段,再用like去模糊查,数据量上去速度就有点慢,有比like效率更高的方法么,给这个字段加上索引可行么,新人

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(4)
天蓬老师

加索引可以提升 但是如果是 like '%xxxx%' 那么效率和不加索引一样
还有你要查的内容是什么

巴扎黑

like 'xxxx%' 会快点

怪我咯

sphinx

伊谢尔伦

在mysql里,like ‘xxx%’可以用到索引,但like ‘%xxx%’却不不行的,对于这种模式匹配like ‘%xxx%’可通过覆盖索引进一步优化,举个例子:
1.select id form table where like ‘%xxx%’,这里id是主键(也就是索引),主要你的select字段正好是索引,那么就会用到覆盖索引了,通过覆盖索引,可以减少IO,提高性能,简单说,覆盖索引就是:我要在书里查找一个一个内容,由于目录写得很详细,我在目录中就能获取得到,不需要翻到详细页去看了。
例如:
1.select count(*) from table where like ‘%xxx%’
2.select count(*) from table a join ( select id form table where like ‘%xxx%’) b on a.id =b.id
那么第一个例子跟第二个例子的结果是一样的,但由于第二个用到了覆盖索引,所以性能就提高了,大致上的匹配优化就是这样

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号