iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL Like模糊查询速度太慢如何解决
  • 250
分享到

MySQL Like模糊查询速度太慢如何解决

MySQLLike模糊查询 2022-05-14 13:05:29 250人浏览 八月长安
摘要

问题:明明建立了索引,为何Like模糊查询速度还是特别慢? Like是否使用索引?   1、like %keyWord 索引失效,使用全表扫描。但可以通过翻转函数+like前模糊查询+建立翻转函数索引=走翻转

问题:明明建立了索引,为何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模糊查询的解决方案,若有大神赐教,不吝感激!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL Like模糊查询速度太慢如何解决

本文链接: https://www.lsjlt.com/news/9879.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL Like模糊查询速度太慢如何解决
    问题:明明建立了索引,为何Like模糊查询速度还是特别慢? Like是否使用索引?   1、like %keyword 索引失效,使用全表扫描。但可以通过翻转函数+like前模糊查询+建立翻转函数索引=走翻转...
    99+
    2022-05-14
    MySQL Like 模糊查询
  • MySQL中Like模糊查询速度太慢该如何进行优化
    目录一、前言:二、第一个思路建索引三、INSTR附:Like是否使用索引?总结一、前言: 我建了一个《学生管理系统》,其中有一张学生表和四张表(小组表,班级表,标签表,城市表...
    99+
    2022-11-12
  • MySQL中Like模糊查询速度太慢该怎么进行优化
    这篇文章主要介绍MySQL中Like模糊查询速度太慢该怎么进行优化,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!第一个思路建索引like %keyword 索引失效,使用全表扫描。like keyword% 索引有效...
    99+
    2023-06-22
  • MySQL全文索引like模糊匹配查询慢解决方法
    目录需求全文索引介绍全文索引使用中文分词与全文索引什么是N-gram?这个上面这个N是怎么去配置的?修改方式实际使用初始化测试数据添加索引查询1、使用自然语言模式 NATURAL LANGUAGE MODE 查询2、使用...
    99+
    2022-11-02
  • mysql查询速度慢如何解决
    今天小编给大家分享一下mysql查询速度慢如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-04-20
    mysql
  • MySQL全文索引如何解决like模糊匹配查询慢的问题
    这篇文章主要讲解了“MySQL全文索引如何解决like模糊匹配查询慢的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL全文索引如何解决like模糊匹配查询慢的问题”吧!需求需要模...
    99+
    2023-07-04
  • MySQL 中查询速度慢如何解决
    这篇文章给大家介绍MySQL 中查询速度慢如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、什么影响了数据库查询速度1.1 影响数据库查询速度的四个因素1.2 风险分析QPS:...
    99+
    2022-10-18
  • PostgreSQL查询速度慢如何解决
    PostgreSQL查询速度慢如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。并非每个PostgreSQL查询都会自动使用索引,只有在表的大小超过一个最小值,并且查询...
    99+
    2023-06-14
  • 如何解决mysql中count查询速度很慢的问题
    这篇文章主要介绍了如何解决mysql中count查询速度很慢的问题,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。MySQL 大表的count()...
    99+
    2022-10-18
  • mongodb分页查询太慢如何解决
    要解决MongoDB分页查询太慢的问题,可以考虑以下几个方面的优化:1. 使用索引:确保查询的字段上创建了适当的索引,特别是分页查询...
    99+
    2023-08-23
    mongodb
  • redis缓存读取速度太慢如何解决
    要提高Redis缓存的读取速度,可以考虑以下几个方面的优化:1. 使用合适的硬件:确保Redis运行在高性能的服务器上,并且服务器的...
    99+
    2023-09-05
    redis
  • 嫌 OSS 查询太慢?看我们如何将速度提升 10 倍!
    背景 HDFS 是 Hadoop 生态的默认存储系统,很多数据分析和管理工具都是基于它的 API 设计和实现的。但 HDFS 是为传统机房设计的,在云上维护 HDFS 一点也不轻松,需要投入不少人力进行监控、调优、扩容、故障恢复等一系列事...
    99+
    2016-01-31
    OSS 查询太慢?看我们如何将速度提升 10 倍!
  • 访问mysql速度慢如何解决
    mysql访问速度慢的解决方法首先,在mysql安装目录中,查找到my.cnf配置文件,并用记事本打开;my.cnf配置文件打开后,在文件中查找到“[mysqld]”选项,查找到[mysqld]选项后,在[mysqld]后添加代码;skip...
    99+
    2022-10-18
  • 如何找出Mysql查询速度慢的SQL语句
    小编给大家分享一下如何找出Mysql查询速度慢的SQL语句,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!启动Mysql时加参数-...
    99+
    2022-10-18
  • MySQL查询语句很慢如何解决
    今天就跟大家聊聊有关MySQL查询语句很慢如何解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。连接查询的优化无论什么数据库,多表连接的查询成本都是...
    99+
    2022-10-18
  • MySQL存储写入速度慢如何解决
    MySQL存储写入速度慢如何解决,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、存储结构分析MySQL 存储结构图:解析:1...
    99+
    2022-10-18
  • SQL数据库容量大,查询速度慢,有何解决方案?
    首先应该确定是谁慢的,往往是程序处理方面的问题而不是数据库的问题。 程序方面应该尽可能的减少数据查询返回的内容,比如可以查询返回ID,然后再根据ID一条一条的查询具体内容,看似慢了,在数据量达的时候快很多 对于数据可以参照下面几点 1、优化...
    99+
    2023-09-02
    数据库 oracle mysql
  • 模糊查询如何解决sql语句注入问题
    模糊查询解决sql语句注入问题的示例:使用mysql中concat函数可以解决sql注入又能够在位置文件中写%,代码如下:<select id = "selectByName"...
    99+
    2022-10-23
  • 如何解决mysql大表查询慢的问题
    小编给大家分享一下如何解决mysql大表查询慢的问题,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!mysql大表查询慢的优化方法:1、合理建立索引,通常查询利用到索引比不用索引更快;2、对关键...
    99+
    2022-10-18
  • MyBatis如何解决模糊查询包含特殊字符问题
    这篇“MyBatis如何解决模糊查询包含特殊字符问题”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MyBatis如何解决模糊...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作