为什么数据库的InnoDB存储引擎选择了B+tree索引结构?

目录

为什么不用二叉树?

为什么不用红黑树?

为什么不用B树?

 为什么不用Hash索引?

B+树


为什么不用二叉树?

顺序插入的情况下,会形成链表

为什么不用红黑树?

本质上也是一个二叉树,虽然不会产生形成链表的情况,但是同样的数据下,B+Tree的层级相对于二叉树更少

为什么不用B树?

叶子结点和非叶子结点都会存储数据,但是我们知道磁盘中是一块一块的存储数据的,也叫一页,那么这一页中如果存储key和指针的同时还存储数据,这样就会导致这一个节点上面能够存储的key和指针减少,这样就导致在大量的数据下,它的层级会比B+树要多

为什么数据库的InnoDB存储引擎选择了B+tree索引结构?_第1张图片

 为什么不用Hash索引?

hash索引,是无序的,不支持范围查找

B+树

不管是什么数据,都要去叶子结点查找,查找结果稳定,而且形成了范围查找

你可能感兴趣的:(mysql,数据库)