我环顾四周,发现一些MySQL引擎是innodb和MyISAM。 也许还有更多。 我的问题是这些数据库引擎是什么? 不同的MySQL引擎有什么区别? 更重要的是,我如何决定使用哪一个?
我有兴趣了解数据库引擎如何工作(即它的内部)。 我知道CS(树,散列表,列表等)中教授的大部分基本数据结构以及对编译器理论的相当好的理解(并且已经实现了一个非常简单的解释器),但我不明白如何去关于编写数据库引擎。 我已经search了关于这个主题的教程,我找不到任何东西,所以我希望别人能指出我正确的方向。 基本上,我想了解以下信息: 数据如何存储在内部(例如,表格是如何表示的等) 引擎如何find它需要的数据(例如,运行SELECT查询) 如何以快速高效的方式插入数据 和其他可能与此相关的话题。 它不一定是在磁盘上的数据库 – 即使内存数据库是好的(如果更容易),因为我只是想了解其背后的原则。 非常感谢您的帮助。