首页 / MYSQL / MySQL 模糊匹配优化
MySQL 模糊匹配优化
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL 模糊匹配优化,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1263字,纯文字阅读大概需要2分钟。
内容图文
经典语句
SELECT `column` FROM `table` WHERE `field` like '%keyword%';
看到上述这条语句是不是有一丝丝的熟悉,没错,我也是这么写的 - -。
explain 查看性能
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | bj | index | drugName_index | 302 | 25812 | 11.11 | Using where; Using index |
下面介绍一下locate:
返回 substr 在 str 中第一次出现的位置,如果 substr 在 str 中不存在,返回值为 0
SELECT 'column' FROM 'table' as t WHERE LOCATE(keyword',t.field)>0;
explain 查看性能
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | bj | index | drugName_index | 302 | 25812 | 100 | Using where; Using index |
上述对比我们可以看到,其实仅有filtered的差别,
filter的解释是这样子的:这个字段表示存储引擎返回的数据在server层过滤后,剩下多少满足查询的记录数量的比例,注意是百分比,不是具体记录数。
那当然是返回的百分比越大越好,代表数据利用率高。
还有一种like查询方式‘keword%’,限制则是必须以keyword开头
SELECT `column` FROM `table` WHERE `field` like 'keyword%';
explain 查看性能
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | bj | range | drugName_index | drugName_index | 302 | 60 | 100 | Using where; Using index |
我们不难发现他的查询性能是优于上述两种方式的,如果符合keyword开头的情况下则可以采用。
内容总结
以上是互联网集市为您收集整理的MySQL 模糊匹配优化全部内容,希望文章能够帮你解决MySQL 模糊匹配优化所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。