3

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

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

我可以理解排序,但是如果我将字符串作为索引的键,如何对字符串进行排序?

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

4

1 回答 1

3

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

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

于 2017-03-07T16:03:50.790 回答