相比update和insert,一般查询应该是数据库中操作最频繁的。而在有些应用场景需要用到like模糊查询,那么对于大数据,查询的时候就要注意了。

现在来分析一下为什么like语句查询的效率会很低,测试数据共4000000条,如下图:

第一步:不使用索引

下图可以看出,不使用索引的时候普通查询与like查询的耗时相当,like略长,这也是必然的,因为它要进行额外的算法。

第二步:使用索引

如下图,使用索引后,普通查询的耗时基本算是秒查,非常快;而like查询还是耗时一秒多。

第三步:分析原因

如下图,用explain分析一下,此时我们立刻明白了,普通查询用到了索引,但是like语句没有用到索引。

所以,照成mysql中like查询效率低下的原因是:在有些情况下,like查询使用不到索引,会扫描全表。

最后,补充一下,like语句有时候也是可以用到索引的,如下图,如果我们查询的时候写成“like 'dd_'或者like 'dd%'”,这样是可以用到索引的,此时的查询速度也会相对的快一点。虽然快了一点,但是还是比普通查询耗时要多很多。

因此,当表的数据量比较大的时候,尽量还是不要用like语句了。如果想做模糊搜索,建议用搜索引擎,比如solr,这样会比like强大n倍。

参考:https://www.daixiaorui.com/read/210.html

sql:mysql:分析为什么like模糊查询效率低相关推荐

  1. mysql越筛越少_面试官:为什么SELECT * 会导致查询效率低?

    面试官:"小陈,说一下你常用的SQL优化方式吧." 陈小哈:"那很多啊,比如不要用SELECT *,查询效率低.巴拉巴拉..." 面试官:"为什么不要 ...

  2. mysql查询所有图书信息_PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能

    本文实例讲述了PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能.分享给大家供大家参考,具体如下: 一.代码 td{ font-size:9pt; } .style2 {col ...

  3. 利用php实现图书查询功能,PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能

    本文实例讲述了php+mysql使用mysql_num_rows实现模糊查询图书信息功能.分享给大家供大家参考,具体如下: 一.代码 td{ font-size:9pt; } .style2 {col ...

  4. mysql 加密脱敏字段模糊查询 笔记

    mysql 加密脱敏字段模糊查询 入库的数据是要进行加密脱敏的数据:但是这个字段还要支持界面模糊匹配:这里做个笔记吧 仅供参考 insert into 的sql 大概长这样 insert into t ...

  5. mysql中有几种模糊查询?

    mysql中有几种模糊查询? 聊起mysql中的模糊查询,大家可能马上就能想到like保留字. like加通配符就能完成很多模糊查询的操作. 比如希望查询出所有以词jet开头的产品 select * ...

  6. mysql数据库的xml模糊查询

    mysql数据库的xml模糊查询 mybatis框架的xml中<= , >=解析会出现问题,编译报错,所以需要转译 正常的是使用%xxxx% ,现在需要使用 concat('%',#{xx ...

  7. mysql多条件匹配模糊查询

    mysql中通常的模糊查询使用like语句,但是有时候需要匹配多个条件进行模糊查询,like就无法满足了,比图所示,我们需要查询content字段中包含建设和统计的字段,like语句就无法满足了 所以 ...

  8. mysql中in查询效率低的替代方法_一波骚操作,我把 SQL 执行效率提高了 10,000,000 倍...

    场景 我用的数据库是mysql5.6,下面简单的介绍下场景 课程表: 数据100条 学生表: 数据70000条 学生成绩表SC 数据70w条 查询目的:查找语文考100分的考生 查询语句: selec ...

  9. 关于解决MYSQL的like模糊查询效率的一种方案

    大家都知道like %suibin% 这种查询的效率极低,而MYSQL也建议不要这样模糊查询,常用的是把数据同步到CACHE里: 1.比如同步到ES里用ES模糊查询.或者同步数据到MongoDB实现模 ...

  10. mysql覆盖索引解决模糊查询失效_关于MySQL的SQL优化之覆盖索引

    前些天,有个同事跟我说:"我写了个SQL,SQL很简单,但是查询速度很慢,并且针对查询条件创建了索引,然而索引却不起作用,你帮我看看有没有办法优化?". 我对他提供的case进行了 ...

最新文章

  1. ArcMap导出属性表为Excel文件
  2. docker中部署Tomcat
  3. emlog充值插件_常用十大必备Emlog插件
  4. java soap envelope_如何在SOAP请求中关闭Envelope和Body
  5. 电脑选购:看完才明白,一体机和台式机电脑哪个好?
  6. 数值分析方阵的QR分解
  7. 分享30个应用HTML5的网站案例
  8. jsp分页代码mysql_jsp分页(jsp分页完整代码)
  9. Spring 菜鸟教程 IntrospectorCleanupListener
  10. 唐宇迪学习笔记9:逻辑回归与梯度下降策略
  11. 代码 生成迅雷链接启动迅雷下载
  12. 俄罗斯、乌克兰程序员薪资大曝光!(来长长见识)
  13. 时空数据库中的轨迹数据压缩
  14. 81.(cesium之家)cesium修改灰色背景(默认蓝色)
  15. 万豪国际亚太区第1000家酒店开业!总客房数量超一半在中国 | 美通社头条
  16. webservice概述及cxf在Java开发中应用(三) cxf客户端开发
  17. Excel中FgColorsum函数根据字体颜色求和
  18. 安卓手机怎么下载java游戏
  19. 论文阅读_对比学习_SimCSE
  20. 【STM32F4系列】【HAL库】【自制库】WS2812(软件部分)(PWM+DMA)

热门文章

  1. 电商数据分析与数据化运营
  2. 虚拟机安装Win7系统
  3. Github 标星 3w+,热榜第一,使用 Python实现所有算法!
  4. gcj-02 wgs-84 java_GCJ-02火星坐标系和WGS-84坐标系转换关系
  5. Java转换坐标系,GPS(WGS84)、百度(BD-09)、高德(GCJ-02)互转,一文搞懂坐标系、坐标转换
  6. Expandable TabBar
  7. 聊一聊输入阻抗、输出阻抗和阻抗匹配
  8. Monkey压力测试
  9. DDoS的攻击方式和防御方法
  10. R语言绘制NMDS图