如何在 b 树中索引可变长度字符串、整数、二进制文件?

How do I index variable length strings, integers, binaries in b-tree?

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

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

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

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

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

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