PostgreSQL优化器函数脑图(思维导图)

PG优化器的入口函数是PlannedStmt * planner(Query *parse, int cursorOptions, ParamListInfo boundParams),返回值是执行器执行计划时需要的全部信息以及子计划的相关信息。入参有三个,第一个是从上层语法语义分析后传入的语法树,第二个参数是带有cursor语句的选项,扫描表tuple一次提取的个数,第三个参数是ParamListInfo结构体,定义几个回调函数,普通SQL查询优化过程一般为NULL。

可以调用用户自己写的查询优化函数,也可以使用PG自带的标准的查询优化(standard_planner()函数)。该函数作为入口,后续的优化函数主要完成优化器的逻辑优化和物理优化。逻辑优化包括了上拉子连接、上拉子查询、标准化表达式预处理、外连接消除,非SPJ处理等。

如果需要PDF高清图的可以发CSDN消息给我,单独发


猜你喜欢

转载自blog.csdn.net/helenbi/article/details/123502249