|
PostgreSQL进程结构: http://www.doserv.com/article/2012/0502/3345022.shtml
守护进程 postmaster: 负责整个系统的启动和关闭,监听并接受客户端的连接请求,为其分配(fork)服务进程postgres.
服务进程 postgres: 接受并执行客户端发送的命令,在底层模块(如存储/事务/索引等)之上
调用各个主要的功能模块(如编译器/优化器/执行器等),完成客户端的各种数据库操作,并返回执行结果.
守护进程 postmaster 在完成基本运行环境初始化,创建接受用户请求的监听端口后,顺序启动如下系统辅助进程:
SysLogger(系统日志进程) -> PgStat(统计数据收集进程) -> AutoVacuum(系统自动清理进程)
在守护进程 postmaster 进入到循环监听时启动如下进程:
BgWriter(后台写进程) -> WalWriter(预写式日志写进程) -> PgArch(预写式日志归档进程)
php-fpm(php5-pgsql/libpq5) -> postmaster -> postgres
php-fpm(pconnect) postgres
http://php.net/manual/zh/function.pg-pconnect.php
pg_pconnect: 打开一个持久的 PostgreSQL 连接
pgsql.allow_persistent = On (默认允许打开持久连接)
pgsql.max_persistent = -1 (默认不限制最大持久连接数)
对比MySQLi:
mysqli.allow_persistent = On
mysqli.max_persistent = -1 |
|
|