MySQL Like模糊查询速度慢的解决方法

发布时间:2020-10-27 20:25:58

来源:亿速云

阅读:109

作者:Leah

本篇文章给大家分享的是有关MySQL Like模糊查询速度慢的解决方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

Like是否使用索引

1、like %keyword 索引失效,使用全表扫描。但可以通过翻转函数+like前模糊查询+建立翻转函数索引=走翻转函数索引,不走全表扫描。

2、like keyword% 索引有效。

3、like %keyword% 索引失效,也无法使用反向索引。

使用mysql的explain简单测试如下:

explain select * from company_info where cname like '%小%'

explain select * from company_info where cname like '小%'

Oracle like '%...%'优化

1、尽量不要使用 like '%%'

2、对于 like '%' (不以 % 开头),Oracle可以应用 colunm上的index

3、对于 like '%…' 的 (不以 % 结尾),可以利用reverse + function index 的形式,变化成 like '%'

4、非用like'%%'不可时,使用Oracle内部函数:INSTR()解决。select * from emp2 where job like '%RE%' and ename like '%A%' and mgr like '%3%' ; --走全表扫描,速度慢

select * from emp where instr(job,'RE')>0 and instr(ename,'A')>0 and instr(mgr,'3')>0 ; --只查找字段,速度快

MySQL中的INSTR(与Oracle中的不一样)

INSTR(str,substr)

返回字符串str串中substr子串第一个出现的位置。这与LOCATE()的双参数形式是一样的,不同的是参数的顺序是相反的。

INSTR(字段名, 字符串)

这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始)SELECT * FROM tblTopic ORDER BY INSTR( topicTitle, 'ha' ) > 0 DESC

SELECT INSTR( topicTitle, 'ha' ) FROM tblTopic

后来又尝试将查询一张表的sql语句,拆成好几个sql,在服务器中同时运行,最后在合并结果。奈何道行太浅,这个实现也没那么好。

还尝试建立全文索引,数据库居然不让这么干

最终是需求方妥协,采用 Like keyword% 的格式使用索引

对于Like模糊查询的解决方案,若有大神赐教,不吝感激!

以上就是MySQL Like模糊查询速度慢的解决方法,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

mysql like查询很慢_MySQL Like模糊查询速度慢的解决方法相关推荐

  1. mysql表文件被删_mysql表物理文件被误删的解决方法

    前言 1.该方法只介绍了如何救回这个表名(数据不恢复) 如果想要恢复原来数据 直接用extundelete把文件恢复后放回去即可 2.并且是适用于平时没有全备的情况下  如果有全备 直接那全备的frm ...

  2. mysql利用cpu率高_MySQL CPU 使用率高的原因和解决方法

    用户在使用 MySQL 实例时,会遇到 CPU 使用率过高甚至达到 100% 的情况.本文将介绍造成该状况的常见原因以及解决方法,并通过 CPU 使用率为 100% 的典型场景,来分析引起该状况的原因 ...

  3. mysql cpu 高 原因 汇总_MySQL CPU 使用率高的原因和解决方法(来自aliyun官方文档)

    用户在使用 MySQL 实例时,会遇到 CPU 使用率过高甚至达到 100% 的情况.本文将介绍造成该状况的常见原因以及解决方法,并通过 CPU 使用率为 100% 的典型场景,来分析引起该状况的原因 ...

  4. mysql 字符串不限长度_mysql提示字符长度超限制的解决方法

    mysql提示字符长度超限制的解决方法 发布时间:2020-06-11 16:16:16 来源:亿速云 阅读:294 作者:鸽子 mysql在创建数据库的时候,字符集设置的不是utf8而是utf9mb ...

  5. mysql 存储微信昵称乱码_MYSQL 保存微信昵称特殊字符报错解决方法-设置编码集为utf8mb4的方法...

    mysql utf8mb4 保存微信昵称特殊字符报错方法 公众号二次开发,在处理用户昵称的时候发现有的时候一些emoji是4字节的表情无法保存入库,经过查找资料发现是因为字段的编码问题造成的, utf ...

  6. 80m的mysql文件要导入多久_mysql导入数据库文件最大限制更改解决方法:You probably tried to upload too large file...

    最近一次在用phpmyadmin导入mysql数据库时,偶的15M的数据库不能导入,mysql数据库最大只能导入2M.. phpmyadmin数据库导入出错: You probably tried t ...

  7. mysql登陆错误2003(hy000)_mysql远程无法登陆出现ERROR2003(HY000)...解决方法_MySQL

    bitsCN.com Q: 当在另一台机器上登录MySQL时出现如下错误: ERROR 2003 (HY000): Can't connect to MySQL server on 'x.x.x.x' ...

  8. MySQL索引系列--索引的优化--LIKE模糊查询

    原文网址:MySQL索引系列--索引的优化--LIKE模糊查询_IT利刃出鞘的博客-CSDN博客 简介         本文介绍MySQL的LIKE模糊查询索引的优化.主要是索引失效的解决方案. 索引 ...

  9. es java 模糊查询_java使用elasticsearch进行模糊查询-已在项目中实际应用

    java使用elasticsearch进行模糊查询 使用环境上篇文章本人已书写过,需要maven坐标,ES连接工具类的请看上一篇文章,以下是内容是笔者在真实项目中运用总结而产生,并写的是主要方法和思路 ...

  10. php 模糊查询数据库,php模糊查询_php 简单内容查询代码 利用sql like模糊查询

    摘要 腾兴网为您分享:php 简单内容查询代码 利用sql like模糊查询,中英翻译,云闪付,远离手机,易订货等软件知识,以及多多,345游戏中心,nodejs,湖北教育云app,吨吨吨表情包,dn ...

最新文章

  1. 认知推理:从图表示学习和图神经网络的最新理论看AI的未来
  2. JZOJ 5275. 水管
  3. 使用百度地图API制作线路轨迹播放
  4. python小课笔记_python第三课笔记
  5. [改善Java代码]若有必要,使用变长数组
  6. python中re模块_python之re模块
  7. ZetCode Spring 教程
  8. html template--(来自网易)
  9. 翻译:控制容器的反转IoC和依赖注入模式DIP 概念发源地 Martin Fowler
  10. Zookeeper 常用Shell命令总结
  11. 全新UI聚合支付系统四方系统源码+升级修复漏洞完美版
  12. App的暗黑颜色搭配
  13. 【前端技巧】文本内容单行省略及多行省略
  14. Visual Studio 6/2005/2008/2010/2012/2013 各版本编译器 下载
  15. GRANT ALL PRIVILEGES
  16. 随机森林重要性排序-R
  17. hdu 3054 Fibonacci 找规律
  18. 计算机本地用户删除后怎么恢复,电脑本地连接不见了怎么恢复(win10怎样找回本地连接)...
  19. Android高级图片滚动控件,编写3D版的图片轮播器
  20. 是德MSOX4104A 数字存储示波器

热门文章

  1. 全球2%高智商天才必测脑力题!却只有1%的人,能在5分钟内全部做对!
  2. TYUT太原理工大学2022数据库考试题型大纲
  3. 根据经纬度查询地理位置API
  4. 嘉兴 机器人仓库 菜鸟_菜鸟在嘉兴推出全新智能仓 在“双11”启用超级机器人仓群...
  5. kali安装搜狗拼音输入法
  6. 夜天之书 #61 Maintainer 的标准
  7. CocoaPods使用小结
  8. BZOJ 4826 HNOI2017 影魔
  9. PS如何快速完整的抠头发丝,请看详细的教程
  10. itest考试切屏能检测出来吗_用itest考试分屏会被后台检测吗?