mysql like查询很慢_MySQL Like模糊查询速度慢的解决方法
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模糊查询速度慢的解决方法相关推荐
- mysql表文件被删_mysql表物理文件被误删的解决方法
前言 1.该方法只介绍了如何救回这个表名(数据不恢复) 如果想要恢复原来数据 直接用extundelete把文件恢复后放回去即可 2.并且是适用于平时没有全备的情况下 如果有全备 直接那全备的frm ...
- mysql利用cpu率高_MySQL CPU 使用率高的原因和解决方法
用户在使用 MySQL 实例时,会遇到 CPU 使用率过高甚至达到 100% 的情况.本文将介绍造成该状况的常见原因以及解决方法,并通过 CPU 使用率为 100% 的典型场景,来分析引起该状况的原因 ...
- mysql cpu 高 原因 汇总_MySQL CPU 使用率高的原因和解决方法(来自aliyun官方文档)
用户在使用 MySQL 实例时,会遇到 CPU 使用率过高甚至达到 100% 的情况.本文将介绍造成该状况的常见原因以及解决方法,并通过 CPU 使用率为 100% 的典型场景,来分析引起该状况的原因 ...
- mysql 字符串不限长度_mysql提示字符长度超限制的解决方法
mysql提示字符长度超限制的解决方法 发布时间:2020-06-11 16:16:16 来源:亿速云 阅读:294 作者:鸽子 mysql在创建数据库的时候,字符集设置的不是utf8而是utf9mb ...
- mysql 存储微信昵称乱码_MYSQL 保存微信昵称特殊字符报错解决方法-设置编码集为utf8mb4的方法...
mysql utf8mb4 保存微信昵称特殊字符报错方法 公众号二次开发,在处理用户昵称的时候发现有的时候一些emoji是4字节的表情无法保存入库,经过查找资料发现是因为字段的编码问题造成的, utf ...
- 80m的mysql文件要导入多久_mysql导入数据库文件最大限制更改解决方法:You probably tried to upload too large file...
最近一次在用phpmyadmin导入mysql数据库时,偶的15M的数据库不能导入,mysql数据库最大只能导入2M.. phpmyadmin数据库导入出错: You probably tried t ...
- 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' ...
- MySQL索引系列--索引的优化--LIKE模糊查询
原文网址:MySQL索引系列--索引的优化--LIKE模糊查询_IT利刃出鞘的博客-CSDN博客 简介 本文介绍MySQL的LIKE模糊查询索引的优化.主要是索引失效的解决方案. 索引 ...
- es java 模糊查询_java使用elasticsearch进行模糊查询-已在项目中实际应用
java使用elasticsearch进行模糊查询 使用环境上篇文章本人已书写过,需要maven坐标,ES连接工具类的请看上一篇文章,以下是内容是笔者在真实项目中运用总结而产生,并写的是主要方法和思路 ...
- php 模糊查询数据库,php模糊查询_php 简单内容查询代码 利用sql like模糊查询
摘要 腾兴网为您分享:php 简单内容查询代码 利用sql like模糊查询,中英翻译,云闪付,远离手机,易订货等软件知识,以及多多,345游戏中心,nodejs,湖北教育云app,吨吨吨表情包,dn ...
最新文章
- 认知推理:从图表示学习和图神经网络的最新理论看AI的未来
- JZOJ 5275. 水管
- 使用百度地图API制作线路轨迹播放
- python小课笔记_python第三课笔记
- [改善Java代码]若有必要,使用变长数组
- python中re模块_python之re模块
- ZetCode Spring 教程
- html template--(来自网易)
- 翻译:控制容器的反转IoC和依赖注入模式DIP 概念发源地 Martin Fowler
- Zookeeper 常用Shell命令总结
- 全新UI聚合支付系统四方系统源码+升级修复漏洞完美版
- App的暗黑颜色搭配
- 【前端技巧】文本内容单行省略及多行省略
- Visual Studio 6/2005/2008/2010/2012/2013 各版本编译器 下载
- GRANT ALL PRIVILEGES
- 随机森林重要性排序-R
- hdu 3054 Fibonacci 找规律
- 计算机本地用户删除后怎么恢复,电脑本地连接不见了怎么恢复(win10怎样找回本地连接)...
- Android高级图片滚动控件,编写3D版的图片轮播器
- 是德MSOX4104A 数字存储示波器
热门文章
- 全球2%高智商天才必测脑力题!却只有1%的人,能在5分钟内全部做对!
- TYUT太原理工大学2022数据库考试题型大纲
- 根据经纬度查询地理位置API
- 嘉兴 机器人仓库 菜鸟_菜鸟在嘉兴推出全新智能仓 在“双11”启用超级机器人仓群...
- kali安装搜狗拼音输入法
- 夜天之书 #61 Maintainer 的标准
- CocoaPods使用小结
- BZOJ 4826 HNOI2017 影魔
- PS如何快速完整的抠头发丝,请看详细的教程
- itest考试切屏能检测出来吗_用itest考试分屏会被后台检测吗?