我们都知道InnoDB存储引擎的存储数据结构是B+树,那小伙伴们有没有想过,InnoDB存储引擎为什么要用B+树作为它的存储结构,而是用Hash,二叉树,AVL树,红黑树,B-树呢?
今天小编就来为大家梳理一下里面的逻辑。
Hash
Hash是什么?
Hash表又称散列表,是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。–《百度百科》
Hash特点是什么?
- 根据指定下标读取数据。
- 所有数据文件需要添加到内存,比较耗费内存空间。
- 精确查找速度快。
Hash存在什么问题?
如果所有的查询是等值查询,那么hash很快,如果是范围查询且较多的数据,hash不合适,因为hash要精确配置到每一个值,如果范围查询则需要逐个匹配。

思考:适合范围查询的数据结构有什么?
二叉树

二叉树是什么?
二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得

本文探讨了InnoDB存储引擎选择B+树作为存储结构的原因,对比了Hash、二叉树、AVL树、红黑树和B-树的优缺点。B+树通过将数据存储在叶子节点并使用链表连接,减少了IO次数,提高了查询性能,尤其适用于大数据量的存储需求。
最低0.47元/天 解锁文章
763





