B+树在MySQL中默认页节点的大小是多少?千万级别的数据最多需要几次IO?
索引数据结构二叉树、红黑树、Hash、B+树详解
1. 什么是索引?
索引是帮助MySQL高效获取数据的排好序的数据结构。
“排好序” 这三个字其实就是对索引最好的形容和体现。
我们可以简单把索引比喻成为书本的目录页,当然这么说太过于抽象,并没有把索引的底层特性说明白,下面我们将依次分析 二叉树、红黑树、Hash、B树、B+树 这些数据结构,来说明索引究竟是什么?!
2. 二叉树
本身是有序树,树中包含的各个节点的度不能超过 2,即只能是 0、1 或者 2。
如果说我们用二叉树作为索引,它的储存结构如下所示:
由于MySQL是放在磁盘里面的,每次查找下一个节点都要经过一次IO操作!假设我