我有兴趣了解数据库引擎的工作原理(即它的内部结构)。我知道 CS 中教授的大多数基本数据结构(树、哈希表、列表等),并且对编译器理论有很好的理解(并且已经实现了一个非常简单的解释器),但我不明白该怎么做关于编写数据库引擎。我已经搜索了有关该主题的教程,但找不到任何教程,因此我希望其他人可以为我指明正确的方向。基本上,我想了解以下信息:
- 数据如何在内部存储(即如何表示表等)
- 引擎如何找到它需要的数据(例如运行 SELECT 查询)
- 如何以快速高效的方式插入数据
以及可能与此相关的任何其他主题。它不必是磁盘数据库——即使是内存数据库也可以(如果它更容易的话),因为我只想了解它背后的原理。
非常感谢您的帮助。