为什么InnoDB选择了B+Tree树结构

首先,相对于二叉树存储同样的数据层级更少,搜索效率更高,假设恰好存储的是一组单向顺序插入的链表数据时,其层级是逐级递增的,很明显插入和查询性能都降低;

其次,B树虽然利用了向上分裂的数据结构算法规则,在一定程度上优化了存储性能,但其每个节点除了存放键值和地址外,还会存放当前节点的数据,这样相当于页上的存放数据的空间减少了,

在同等情况下,存入相同的数据量,B树还需扩增层级才能达到效果,降低了插入和查询的性能。而B+树采用的是将非叶子节点存放指向具体数据的索引,叶子节点存放所有具体的数据,且叶子节点之间形成一个双向链表,

这样就提高了区间访问性能,并且利于排序和查询。

最后,对于Hash索引,B+树索引是支持范围匹配和排序的。

posted @ 2023-03-02 21:31  xycccode  阅读(28)  评论(0编辑  收藏  举报