当前播放: 从磁盘I/O的角度聊聊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架构?

从磁盘I/O的角度聊聊MySQL的索引

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

日常项目中,如果使用到了 MySQL 数据库,索引是个非常值得关注的话题。有索引和没有索引,好的索引和不好的索引对系统性能的影响,有可能是天壤之别。今天,我就从磁盘 I/O 的角度,和你具体聊聊 MySQL 的索引。

讲师介绍

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

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

精选留言(15)

  • 秃头小和尚
    hash索引不能范围查找
    2020-04-25
    10
  • 孙瑜
    老师讲的很清晰。
    刚学了一段时间,不谷歌先按自己理解,解思考题,还请大家指导。
    Hash索引因为存在散列冲突,加上hash函数自身处理的时间,虽然是O(1)这个常量级可能比O(logN)还要大,综合考虑没有B+树稳定。
    2020-04-26
    2
    7
  • 张滔
    有个问题一直没明白,如果说数据行存储在主键索引的叶子节点,那么为什么还会存在全表扫描?扫描主键索引不就可以了吗?
    2020-04-26
    8
    2
  • 马什么梅
    利用hash存储会有hash冲突的现象,数据量越大,hash冲突越严重,大频率的计算hash会浪费计算机cpu的性能
    2020-04-28
    1
  • Honva
    在保障索引区分度的情况下,被索引的字段尽量不要太长
    每读取一个节点就会读取一次磁盘I/O,树高为什么是磁盘检索的I/O次数?老师可以解答下不?
    2020-04-26
    4
    1
  • 小强哥
    索引区分度的概念,age的范围大概就是1-100,如果表数据量很大,这样age字段索引区分度就很小,这种情况是不是就不能在age字段上建立索引,或者说建立索引的意义不大
    2020-04-25
    1
    1
  • 慌张而黑糖
    不知道是不是因为当索引值通过hash计算以后可能相同,最坏情况下变成了一个链表,时间复杂度变成了O(n),但是按照hashmap的设计方式,最后也会变成log(n)的时间复杂度。可能是我回答方向偏了吧
    2020-04-25
    1
    1
  • oops
    hash索引适合等值查询,数据是无序的
    2020-05-21
  • 努力奋斗的Pisces
    hash明显做不到区间的查询,虽然查询快
    2020-04-27
  • 玛雅
    不太明白索引个数的增加是如何影响数据的写入与更新的,希望老师给予解答
    2020-04-26
    3
  • Andylee
    hash索引的相邻元素没有排序的关系,不合适范围查找
    2020-04-25
  • Geek_185094
    因为hash索引没办法进行range查询。
    2020-04-25
  • linner
    hash索引不支持范围查询和比较操作,而且会发生哈希碰撞
    2020-04-25
  • do it
    回答问题
    Hah索引针对等值查询的时间复杂度是O(1),数据库查询很多都是区间查询,Hash就显得不合适了
    BTREE 能兼顾等值查询和区间查询
    2020-04-25
  • 小强哥
    磁盘IO的个数,如果是等于的方式查询,应该是树节点的高度,如果是范围查询,应该是节点的遍历个数,因为叶子节点是双向指针,每一个节点是一个page,每次遍历都会消耗一次磁盘IO
    2020-04-25
    3
收起评论
其他推荐
11:23
如何快速定位UI层自动化测试脚本错误
乔桃利 ThoughtWorks任高级质量咨询师
试看
10:22
视频通话背后的关键技术
蔡瑞 声网音视频开发工程师
试看
12:11
微服务架构中如何实现服务访问的容错机制?
郑天民 资深技术专家
试看