PostgreSQL 是非常好的开源的数据库,主要针对替换ORACLE及其他传统型RDBS数据库的重任,基本上大部分中小型企业,能指望的开源数据库也只有POSTGRESQL ,当然如果你愿意花更多的钱...那在使用PG的时候,可能很快就会体会到PG之美, 与功能强大,这里就不在多说,今天要说的是,POSTGRESQL 在高并发下,超高连接对PG的冲击,以及为什么PG 在高并发连接中,需要使用pgbouncer...多连接并不是通过内存的消耗,将PG 带入到OOM 和系统无响应的情况中, 而是随着backend变多后,内部沟通的成本变高,导致性能上的问题,所以PG在多连接中,是需要使用PGPOOL 或者 pgbouncer...1 和 3,4 不是我们要关心的,而是idle 这个状态,这是大部分浪费连接数的关键位置,因为程序的连接池要维护一个连接数据库的状态,这也就导致有些时刻PG 大部分的连接的状态在idle,要更高的利用连接...,让数据库使用有限的连接去处理更多的任务,接入更多的要工作的连接就是解决,少连接和应用要多连接的之间矛盾,所谓的连接复用.
2 如果你经常发现你的连接状态在 idle in transaction 这也就说明经常有大事务长时间在等待什么