💡
原文英文,约1000词,阅读约需4分钟。
📝
内容提要
PostgreSQL的查询处理分为5个阶段:解析器、分析器、重写器、规划器和执行器。解析器负责检查语法错误并生成解析树;分析器深入分析语法并检查表名、数据类型等信息的有效性;重写器根据视图或规则对象的定义重写查询;规划器估算执行成本并生成最佳查询计划;执行器运行规划器生成的执行计划。执行器依赖于访问方法层和其他模块来完成查询。整个查询处理过程以DestReceiver对象返回结果。
🎯
关键要点
-
PostgreSQL的查询处理分为5个阶段:解析器、分析器、重写器、规划器和执行器。
-
解析器负责检查语法错误并生成解析树,使用flex和bison工具进行解析。
-
分析器深入分析语法,检查表名、数据类型等信息的有效性,并生成查询树。
-
重写器根据视图或规则对象的定义重写查询,输出优化后的查询树。
-
规划器负责估算执行成本并生成最佳查询计划,选择成本最低的执行路径。
-
执行器根据规划器生成的执行计划运行查询,并依赖其他模块完成查询。
-
查询处理过程以DestReceiver对象返回结果,最终结果存储在TupleTableSlot结构中。
🏷️
标签
➡️