当前播放: MySQL中索引失效是怎么回事?
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
合辑:MySQL 难点解析
如何合理地使用MySQL的事务?
MySQL中索引失效是怎么回事?
从磁盘I/O的角度聊聊MySQL的索引
如何搭建一款高性能、高可用的MySQL架构?

MySQL中索引失效是怎么回事?

夏海峰 新东方教育科技集团技术专家

在使用了 MySQL 的后端项目中,索引是个非常值得关注的问题。有索引和没有索引,好的索引和不好的索引对系统性能的影响有可能是天壤之别。今天,我们来具体聊聊 MySQL 中的那些索引失效的情况。

讲师介绍

夏海峰,新东方教育科技集团技术专家。他主要负责混合式学习和集团微服务,北京大学计算机硕士毕业,曾历任多家创业公司 CTO。具有十余年 Java 开发经验,在 Spring Cloud 和微服务领域有较为深厚的技术积累。

展开
¥4.99 购买
开通VIP
49
登录 后留言

精选留言(14)

  • 冰河时代
    回答一下题目:由于这个sql不再是select *,当使用idx_address索引后就不需要回表了,mysql可以选择主键索引或者idx_address索引,而idx_address索引存储的字段少一些,占用的存储空间更少,那么这个棵b+树的高度就矮一些,查询效率会更高,所以分析器最终会选择使用idx_address索引,但是这个sql已经无法使用最左匹配的优势了,所以时间复杂度是O(N)。
    2020-04-24
    1
    8
  • do it
    索引失效原因:
    1、隐试类型转换
    2、表达式计算
    3、函数
    4、左/左右模糊匹配
    5、联合索引非最左匹配
    2020-04-25
    5
  • 小文同学
    回答一下题目:虽然使用了索引,但是因为%关键字%的原因,address的地址顺序已经无法帮助查找了,查询应该是第一个叶子节点触发,遍历最后的叶子节点,时间复杂度是 O(n)
    2020-04-23
    1
    3
  • 饭团
    老师 海淀区那个您的图不对 您的explain 图中并没有左边模糊匹配
    2020-04-22
    1
    3
  • 阿哲
    讲的很有意思,还很好理解,不错了
    2020-04-22
    1
    3
  • 一飞同学
    学习了
    2020-04-22
    3
  • Yabo
    被索引字段失效的情况:1.发生隐式类型转换,2.使用表达式计算,3.使用了函数,4.like查询使用了模糊匹配或者左右模糊匹配,5.不是联合索引的最左匹配字段
    2020-04-22
    2
  • leonhawk
    还有一种情况 可能命中多个索引的情况下 优化器选择区分度较低的那个索引导致慢查询 可以用force key强制只用正确索引
    2020-04-28
    1
  • naadp
    大家好!我想问下,为什么范围查找会使后面的索引失效呢?例如 小于查询 和 小于等于查询,都是使后面索引失效吗?又是为什么呢?
    2020-06-12
  • 老猫
    实操:最后
    select id,address from t_user where address like '%海淀区%';
    没有命中索引
    mysql 5.7.26
    2020-06-11
  • 花花大脸猫
    这时候相当于遍历索引树所有叶子节点信息了,时间复杂度是o(n)
    2020-05-10
  • 面对疾风吧
    1、隐试类型转换
    2、表达式计算
    3、函数
    4、左/左右模糊匹配
    5、联合索引非最左匹配
    前三者是对索引字段做了计算,不能保证计算结果顺序与原来一致,后两者违背最左匹配原则。当索引覆盖时,可以选择数据量小的索引,但复杂度上没有优化
    2020-05-09
  • 孙瑜
    最后不需回表的 地址查询SQL,在explain时 “海淀区”前面的 “%”没有了,然后仍然使用了索引的原因,虽然用了索引 但还是遍历了索引吧
    2020-04-25
  • kevenxi
    explain 命令真好用,oracle有相应的命令吗?
    2020-04-24
    1
收起评论
其他推荐
12:09
负载均衡除了算法策略,你还应该知道哪些?
梁松华 京东高级开发工程师
试看
15:02
怎样利用线上日志排查问题?
李竹杨 平安壹钱包架构师
试看
15:03
如何从蛛丝马迹中分析系统间调用出现的问题?
李竹杨 平安壹钱包架构师
试看