我不熟悉数据库方面的思考。我已经了解了 B 树如何存储在磁盘上,但我还没有看到实际的实现或了解它如何用于 B 树。
想知道如何在磁盘上存储跳过列表。有很多关于在内存中用指针存储它的描述,但我还没有看到关于磁盘存储的任何内容。想知道它在高层次上会是什么样子(如果它只是一个大文件或许多小文件,是否有不同类型的文件等)。
我不熟悉数据库方面的思考。我已经了解了 B 树如何存储在磁盘上,但我还没有看到实际的实现或了解它如何用于 B 树。
想知道如何在磁盘上存储跳过列表。有很多关于在内存中用指针存储它的描述,但我还没有看到关于磁盘存储的任何内容。想知道它在高层次上会是什么样子(如果它只是一个大文件或许多小文件,是否有不同类型的文件等)。
DBMS 是数据模型的实现——一种表示数据的结构。关系模型将数据表示为表和列,图形模型表示为节点和边,文档模型表示为嵌套的键值对。如果您的目标是使用现有的 DBMS 来保留跳跃列表,您必须将其部分映射到模型的相应功能可见性。
如果目标是在 DBMS 中实现此功能,您将不再受该 DBMS 的外部模型的约束。一个简单的实现是用相应的磁盘指针(file_id,偏移量)替换内存指针。通过精心安排,可以优化随机/顺序读取。
我记得一些 MySQL 克隆已经实现了这一点。他们的来源是可用的。这些还包括 BTree 实现。