database - 有没有办法理解 PostgreSQL 使用哪些算法来实现关系运算符而无需阅读源代码?
问题描述
PostgreSQL 利用了操作内并行性,这对我很感兴趣(对于我的最后一年的研究项目)。我想知道选择、投影、连接等操作是如何并行化的,但是当我试图查看源代码时,我感到非常不知所措。是否有高级 PostgreSQL“地图”?
我尝试寻找讨论和探索 PostgreSQL 中使用的算法和实现的书籍,但不幸的是没有找到。虽然如果你知道一本书,请随时向我推荐这样一本书。
如果我唯一的选择是深入研究源代码,我需要多长时间才能找到我想要的信息?如果你们中有人看过源代码,你会给我什么建议?
解决方案
开源的好处是源代码和文档之间没有明确的界限,因为两者都是公开的。深入了解实现细节后,您将开始阅读代码。幸运的是,PostgreSQL 代码写得很好并且可读性很好。
进入源代码的第一站是 README 文件。这些描述了更高级别的实现原理、算法和代码规则。在您的情况下,您应该从src/backend/access/transam/README.parallel
.
另一种好方法是读取引入该功能的补丁,例如924bcf4f16d、7aea8e4f2daa、d1b7c1ffe72、f0661c4e8c44和80558c1f5aa1。这将向您介绍代码中与并行查询有关的位置,并让您了解它是如何工作的。
推荐阅读
- google-slides-api - 使用 Google Slides API 从自定义网站添加/删除电子邮件
- javascript - UI渲染后如何让Gatsby加载一些脚本?
- python - 通过python中类外的函数更改类中变量的值
- dialogflow-es - Telegram 中的 Google Dialogflow 快速回复格式问题
- mysql-workbench - 如何解决这个关于从mysql中的另一个表插入新表的问题
- java - 默认的 Maven 插件版本是如何决定的?
- c++ - 使用 gtest 框架在单元测试代码中检查目标对象的私有变量的最佳实践是什么?
- react-native - ReactNative 如果内容很长,TextInput 会是白色的
- c++ - 在 C++ 中输出 22 224444 224444666666
- google-cloud-functions - 云函数:函数以“加载错误”完成