美文网首页
从磁盘IO的角度来看待索引

从磁盘IO的角度来看待索引

作者: AlexWillBeGood | 来源:发表于2021-01-03 21:30 被阅读0次
MySQL索引是一个B+树,相对于普通的平衡二叉树来说每个节点指向更多的节点,相对于B(B-)树来说,只有叶子节点存储真实的数据。 image.png image.png

因为B+树的检索方式应当:

  • InnoDB存储引擎中,主键尽量避免使用很长的字段
    叶子节点上存储的是主键,较小的主键的长度能够减低树的高,减少IO的次数。

  • 在保障索引区分度的情况下,被索引字段尽量不要太长
    普通索引上,非叶子节点存储的是被索引的字段,被索引字段太长也会影响到树高,B+树中每一个节点就是一个Page(16k),每增加一层就会多一次IO。但是需要考虑索引区分度,找到最合适的索引值。
    下图可看出,取前4-5位作为索引最合适:


    image.png

    添加前缀索引:


    image.png
  • 查询中可以利用索引覆盖,索引下推,避免不必要的回表
    索引覆盖,索引下推能减少回表次数,提高速度。

  • 不要建立太多索引
    技术没有银弹!

相关文章

  • 从磁盘IO的角度来看待索引

    MySQL索引是一个B+树,相对于普通的平衡二叉树来说每个节点指向更多的节点,相对于B(B-)树来说,只有叶子节点...

  • mysql索引及数据库引擎

    顺序io(不需要每次都磁盘寻址,效率高),随机io(需要每次都磁盘寻址,效率低) 如何正确的创建合适的索引? 索引...

  • B树与B+树

    数据库索引磁盘IO: 考虑磁盘IO的影响,它相对于内存来说是很慢的。数据库索引是存储在磁盘上的,当数据量大时,就不...

  • mysql 之索引篇

    索引 为为了加速数据检索 减少磁盘IO操作 而创建的一种分散存储的数据结构。索引是由各大引擎来实现的。索引的好处:...

  • MYSQL 索引优化知识点整理

    索引就是排好序的数据结构索引可以用最快的时间定位到数据,索引中包含了 文件的指针,能知道磁盘的位置,然后磁盘(io...

  • 从磁盘I/O角度聊聊Mysql索引

    从磁盘I/O角度聊聊Mysql索引 首先思考下这个问题,为什么添加了索引就能提高mysql的查询效率呢?MySQL...

  • 34.Redis1

    关系型数据库磁盘和内存交互太慢,关键在于内存和磁盘频繁交互。io过多。因为维护在内存,而索引数据在磁盘。解决办法:...

  • Mysql —— 索引

    一、B树 1.1 为什么数据库索引不适用普通的二叉查找树? 考虑到磁盘IO的问题,数据库索引是保存在磁盘上的,当数...

  • SQL基础-索引-源动力

    索引的基本概念 什么是索引? 索引可以帮助数据库引擎在表中查找数据而不需要扫描整个表。索引是减少磁盘IO和逻辑读次...

  • Java的IO操作

    Java的IO操作分为磁盘IO和内存流IO。 1、磁盘IO:FileInputStream和FileOutputS...

网友评论

      本文标题:从磁盘IO的角度来看待索引

      本文链接:https://www.haomeiwen.com/subject/btppoktx.html