首页 > 解决方案 > 有没有办法理解 PostgreSQL 使用哪些算法来实现关系运算符而无需阅读源代码?

问题描述

PostgreSQL 利用了操作内并行性,这对我很感兴趣(对于我的最后一年的研究项目)。我想知道选择、投影、连接等操作是如何并行化的,但是当我试图查看源代码时,我感到非常不知所措。是否有高级 PostgreSQL“地图”?

我尝试寻找讨论和探索 PostgreSQL 中使用的算法和实现的书籍,但不幸的是没有找到。虽然如果你知道一本书,请随时向我推荐这样一本书。

如果我唯一的选择是深入研究源代码,我需要多长时间才能找到我想要的信息?如果你们中有人看过源代码,你会给我什么建议?

标签: databasepostgresqlrdbms

解决方案


开源的好处是源代码和文档之间没有明确的界限,因为两者都是公开的。深入了解实现细节后,您将开始阅读代码。幸运的是,PostgreSQL 代码写得很好并且可读性很好。

进入源代码的第一站是 README 文件。这些描述了更高级别的实现原理、算法和代码规则。在您的情况下,您应该从src/backend/access/transam/README.parallel.

另一种好方法是读取引入该功能的补丁,例如924bcf4f16d7aea8e4f2daad1b7c1ffe72f0661c4e8c4480558c1f5aa1。这将向您介绍代码中与并行查询有关的位置,并让您了解它是如何工作的。


推荐阅读