# 51.1.查询的路径
这里,我们简要概述了查询获得结果所必须经过的阶段。
必须建立从应用程序到PostgreSQL server的连接。应用程序向服务器发送查询,并等待接收服务器返回的结果。
这个分析阶段检查应用程序传输的查询的语法是否正确,并创建查询树.
这个重写系统获取由解析器阶段创建的查询树,并查找规则(存储在系统型录)以应用于查询树。它执行规则机构.
重写系统的一个应用是实现意见.每当对视图(即虚拟表)则重写系统将用户的查询重写为访问基表在视图定义反而。
这计划者/优化者获取(重写的)查询树并创建一个查询计划这将是执行人.
它首先创建所有可能的路径导致相同的结果。例如,如果要扫描的关系上有索引,则扫描有两条路径。一种可能是简单的顺序扫描,另一种可能是使用索引。接下来估计每条路径的执行成本并选择最便宜的路径。最便宜的路径被扩展为执行者可以使用的完整计划。
执行者递归地遍历计划树并以计划表示的方式检索行。执行人利用存储系统在扫描关系时,执行排序和加入, 评估资格最后交还派生的行。
在接下来的部分中,我们将更详细地介绍上面列出的每个项目,以便更好地理解 PostgreSQL 的内部控制和数据结构。