B tree、B+tree
提及B tree、B+tree,自然而然地就会想到数据库索引,这是它们的主要用途,在下面文章中,对它们的原理、用途、对比进行了非常好的描述:
1、codinglabs MySQL索引背后的数据结构及算法原理
非常好的一篇文章,国内很多文章,都借鉴了这篇文章的内容。
2、segmentfault 由 B-/B+树看 MySQL索引结构
给出的例子比较不错。
基本上,从上述两篇文章能够得知两种DS的原理、区别。
思考如下问题
为什么B tree、B+ tree适合作为数据库index
1、codinglabs MySQL索引背后的数据结构及算法原理
这个问题在这篇文章中进行了讨论。
2、B-tree相比于red-black tree,更少的re-balance,这就意味着,更少的disk IO。
B tree VS B+tree
1、geeksforgeeks Introduction of B+ Tree
B tree的internal node和leaf node相同,都会存储key、value
B+tree的internal node和leaf node不相同,internal node存储key,不存储value
B+tree VS skip list
B+tree和skip list两者是非常类似的,它们都使用了index、它们的index都是key、它们都是ordered、最底层都是linked list;
TODO
cnblogs 图解MySQL索引--B-Tree(B+Tree)