自学内容网 自学内容网

mysql模糊查询优化

mysql模糊查询优化

一、合理使用索引

如下SQL举例:
SELECT username,age FROM WHERE username LIKE ‘hysen%’
如果username字段有索引,前缀匹配会走索引,如 ‘%hysen’或’%hysen%’ 则无法走索引。

二、使用反向索引

对于需要使用后缀匹配的情况(如:‘%hysen’或’%hysen%’ ),可以创建一个辅助列 用来存储反转字符串,并基于此列进行前缀匹配(如此则相对于非反转字符串的后缀匹配),以此来实现该需求

ALTER TABLE users ADD reversed_username VARCHAR(255);
UPDATE users SET reversed_username =REVERSE(username);
CREATE INDEX idx_reversed username ON users(reversed_username);

三、限制扫描范围

在LIKE查询中,如果可以通过其他条件进一步缩小查询范围,则尽量先缩小范围,再进行LIKE查询 如
SELECT username FROM users WHERE age >=‘18’ AND username LIKE
hysen%';

四、使用全文本搜索引擎

使用全文本搜索引擎:对于需要模糊匹配的查询,可以考虑使用全文本搜索引擎,如MySQL的全文本搜索功能或者Elasticsearch、Solr、Sphinx等,来提高查询效率


原文地址:https://blog.csdn.net/weixin_49822811/article/details/142812049

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!