我正在创建一个数据库存储引擎(为了好玩)。
我知道它使用b-trees(和东西),但在所有b-tree基本示例中,它表明我们需要对键进行排序,然后将其存储用于索引,而不是整数。
我可以理解排序,但如果我将字符串作为索引的关键字,如何为字符串做?
Ex:我想索引btree中的所有电子邮件地址,我该怎么做?
答案 0 :(得分:2)
无关紧要,您要排序的数据类型。对于B树,您只需要一个比较器。放入数据库的第一个值是root。第二个值与根进行比较。如果较小,则继续向左,否则向右。插入新值通常需要重构树。
字符串的比较器可以使用字符串的长度或按字母顺序进行比较,或者计算at符号后面的电子邮件中的点。