PostgreSQL解析器的功能说明

当应用程序向PostgreSQL系统提交一个查询时,一般要经过五个阶段:

    (1)联接阶段;(2)分析阶段;(3)重写阶段;(4)优化阶段;5)执行阶段。

PostgreSQL采用“每用户一进程”的Client/Server模型。在这种模型里一个客户端进程只与一个服务器进程联接,即每一个客户端与每一个进程关系一一对应。因为不知道具体要建立多少个联接,所以不得不利用一个主进程在每次联接请求时派生出一个新的服务器进程来。这个主进程叫做postmaster,它监听着一个特定的TCP尸端口(缺省为5432)等待联接。每当检测到一个联接请求时,postmaster进程派生出一个新的叫postgre服务器进程。从中可见,其实主进程postmaster所起的作用就是监听客户端发送请求与否,若发送了一个查询请求则派生一个postgre进程与发送请求的客户端唯一的对应;若无请求,则主进程继续等待。

      postgre进程相互之间使用信号灯和共享内存进行通讯,以确保在并行的数据访问过程中的数据完整性。图1显示了主进程postmaster,服务器进程postgre和客户端应用之间的相互关系。一旦建立起来一个联接,客户端进程就可以向后端服务器进程发送查询了。查询是通过纯文本传输的,也就是说在前端不做任何分析处理.服务器分析查询,创建执行规划,执行该规划并且通过已经建立起来的联接把检索出来的记录返回给客户端。

      PostgreSQL解析器的功能就其目的性来说,就是检查从应用程序(客户端)发送过来的查询,核对语法并创建一个查询树(querytree)

      姓名:曹阳    主题:PostgreSQL解析器

 


 

转载于:https://www.cnblogs.com/tjdx415/archive/2010/01/16/1649527.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值