跳表,红黑树,b+树,hashmap因为在其数据结构上的不同而体现出不同的性能,本文从下列角度来权衡各种结构的利弊,加深对各种结构的理解。
原文链接:
面试高频:跳表,红黑树,b+树,hashmap的区别
1.为什么mysql使用b+树而不是红黑树、跳表或者hashmap?
- 1.1、不使用红黑树是因为:
- 1)在增删改查的过程中,时间复杂度为log2n,而b+是logmN,体现在内存和磁盘的IO上,代价比较大。
- 2)特别是插入的时候,红黑树需要进行节点颜色调整,对于频繁的插入而言,这是一个耗时的过程,而b+树仅仅是页分裂问题。另外从并发交付来说,要么线程不安全,要么加锁虽然
数据库与缓存选择:B+树、跳表与HashMap的权衡

本文探讨了MySQL为何选用B+树而非红黑树、HashMap的原因,以及Redis为何采用跳表而不是红黑树或HashMap。主要考虑因素包括查询性能、内存与磁盘IO、区间查找效率以及数据关系性。同时,解释了重写equals方法后为何要重写hashcode方法,以确保对象比较的一致性。
最低0.47元/天 解锁文章
176万+

被折叠的 条评论
为什么被折叠?



