关于数据库B Tree索引

来源:12-1 平衡树和AVL

kxning

2018-06-18

请问下老师有没有B-Tree B+Tree B*Tree方面的资料推荐,想研究下索引结构的原理,谢谢。

写回答

1回答

liuyubobobo

2018-06-19

在通用教材方面,《算法导论》B树一章专门讲解了B树的基本原理,应该是最容易access到的材料:)


wiki从来都是一个好地方,可以对某一个topic有整体性的认识,同时在综述中不失有各种引向更加细节讨论的链接。wiki上的B树传送门:

B树:https://en.wikipedia.org/wiki/B-tree

B+:https://en.wikipedia.org/wiki/B%2B_tree


如果对具体实现感兴趣,GeeksforGeeks的B-Tree专题介绍给出了C++实现:

PART 1:https://www.geeksforgeeks.org/b-tree-set-1-introduction-2/

PART 2:https://www.geeksforgeeks.org/b-tree-set-1-insert-2/

PART 3:https://www.geeksforgeeks.org/b-tree-set-3delete/

从道理上互联网上应该还有很多其他语言实现的代码内容,有兴趣可以根据自己熟悉的语言再搜索一下。


在具体结合数据库方面,有一个小有名气的代码仓,实现了一个小型数据库的内核,其中的主要数据结构当然使用B树啦。代码仓:https://github.com/cstack/db_tutorial

同时,他写了一本小书,描述整个实现过程。所有的内容可以免费在网上浏览,不过比较简略。传送门:https://cstack.github.io/db_tutorial/


《数据库系统概念》这本书(Database System Concepts)在第十一章专门介绍了B树在大型数据库系统中的使用原理。不过由于我不是专业搞数据库的,没有看过这种这么专门介绍数据库系统的书籍。这本书的最新版目录可以在网上找到。传送门:http://codex.cs.yale.edu/avi/db-book/db6/toc-dir/toc.pdf 如果有必要也可以参考:)


加油!

7
1
kxning
非常感谢bobo老师,非常详细的回答,我好好学习下,谢谢。
2018-06-23
共1条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程