当前位置: 首页 > article >正文

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等,来提高查询效率


http://www.kler.cn/a/349370.html

相关文章:

  • uniapp使用navigator标签不支持flex布局
  • 25.3 使用relabel中的drop将对应的无用指标丢弃
  • 没有HTTPS 证书时,像这样实现多路复用
  • 简单认识Maven 2-Maven坐标
  • 【兼容多端】UNIAPP popper气泡弹层vue3+typescript unibest
  • 访问者模式
  • ijkMediaPlayer+ TextureView 等比全屏播放视频(避免拉伸)
  • 实用篇—高效批量复制INSERT语句,并去除某列
  • AVL树学习笔记
  • 校园系统校园小程序 论坛校园圈系统失物招领、闲置二手、跑腿外卖等校园圈子系统应该具备有哪些功能
  • Centos7 搭建logstash
  • echarts显示隐藏柱状图柱子的背景色
  • mysql 实用命令
  • Linux:多线程中的生产消费模型
  • python官网下载安装
  • 【ICPC】The 2021 ICPC Asia Shanghai Regional Programming Contest G
  • Pandas 中 transform() 与 apply() 的联系与区别
  • 本地拉取Docker镜像打包导入远程服务器
  • k8s集群版本升级
  • vue3在setup中引入本地图片