如何在b-tree中索引变长字符串,整数,二进制文件?

时间:2017-03-07 10:50:34

标签: database data-structures b-tree storage-engines b-tree-index

我正在创建一个数据库存储引擎(为了好玩)。

我知道它使用b-trees(和东西),但在所有b-tree基本示例中,它表明我们需要对键进行排序,然后将其存储用于索引,而不是整数。

我可以理解排序,但如果我将字符串作为索引的关键字,如何为字符串做?

Ex:我想索引btree中的所有电子邮件地址,我该怎么做?

1 个答案:

答案 0 :(得分:2)

无关紧要,您要排序的数据类型。对于B树,您只需要一个比较器。放入数据库的第一个值是root。第二个值与根进行比较。如果较小,则继续向左,否则向右。插入新值通常需要重构树。

字符串的比较器可以使用字符串的长度或按字母顺序进行比较,或者计算at符号后面的电子邮件中的点。