B+树:MySql数据库索引是如何实现的

B+树:MySql数据库索引是如何实现的

索引:是帮助MySQL高效获取数据的数据结构。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需要的内容。

数据量很大,几十万几百万,用二叉树,二分查找(每个节点最多拥有两个子节点)不太可能。

局部性原理:当一个数据被用到的时候,它附近的数据也会马上被用到,所以磁盘在读取数据的时候会把其附近的数据也一并读取。

B树,一个节点可以有多个节点

B树会被设为 4kb大小(一页大小)。子节点存储的个数在 100 - 1000之间

关键字对应的数据是记录在硬盘上存储的位置

B+树

  • 非叶节点只存放搜索关键字
  • 叶子节点会链接起来,形成所谓的链表(方便查找)
  • 索引能力更强,搜索关键字更多

MYISAM :

  • 主索引 Key唯一, 辅助索引 key可以重复,没有什么区别,地位平等
  • data 记录的是数据存放的地址,到硬盘上读取数据
  • 有单独的索引文件
  • 非具体索引

InnoDB:

  • 没有索引文件
  • 叶子节点保存完整的数据记录
  • 具体索引(必须有主键)
  • 用主键进行索引,非常高效
  • 辅助索引要先定位到主键,在通过主键索引得到data域
原文地址:https://www.cnblogs.com/AronJudge/p/14525447.html