mysql中 索引数据结构用+树的原因,与hash,二叉树,红黑树的简单对比。

hash索引的优势:一次查找,精准定位。不足: 范围查询 > < ,排序 order by 。比如要找id<4,那它只能快速定位4的hash位置,1 2 3 都不能快速定位。

二叉树:和插入顺序有关,极端情况会出现倾斜二叉树(顺序插入1 2 3 4 5 查找5 就要5次)。

红黑树:解决了二叉树插入顺序的问题,但是又没有从根本上解决,顺序插入,严重右倾。

mysql中 索引数据结构用+树的原因,与hash,二叉树,红黑树的简单对比。

B+Tree:

  • 由于叶子节点上存放了所有的数据,并且有指针相连,每个叶子节点在逻辑上是相连的,所以对于范围查找比较友好。

  • B+树的所有数据都在叶子节点上,所以B+树的查询效率稳定。

  • B+树有利于数据库的扫描。

B+树有利于磁盘的IO,树的高度和磁盘页数匹配,扫描次数少。

mysql中 索引数据结构用+树的原因,与hash,二叉树,红黑树的简单对比。