msyql为什么选择B+树?是因为mysql操作的都是硬盘,硬盘是IO操作,IO是一种很消耗资源的操作,那么这个时候B+树的优势就出来了, 它是一种胖树,就是说树的高度一般就三层,对应三次IO,IO次数少,效率高,当然还有mysql无法一次加载完所有数据,需要按页加载以及叶子结点的链表有序等等。
hashmap为什么选择红黑树?是因为hashmap更多的是用来进行内存操作,内存操作效率高,这个时候B+树反而就不合适了,假如hashmap也用B+树,在进行查找的时候,最多进行三次树的深度查询,之后就要遍历了,这对应内存的高效操作来说,没有加深深度的效率来得高,比如在取一个值得时候,hashmap的时间复杂度为O1,而B+树比O1大,具体我也算不来,应该是O(log n)
等等等等,顺着这个思路往下说吧,这是我这半年背八股文总结的,不对的话,望楼下轻喷