postgresql自身没有连接池?

今天在看postgresql的startup部分的代码,发现它采用的是process per connection 模式,每新来一个tcp连接就会fork一次(即便此时还没有进行身份验证)
首先,如果把postgresql的端口暴露在外是多么的可怕。在win下,每个postgresql新fork的进程占10M左右内存,那么200个就是2G,400个就是4G,攻击者只需要不断的完成3次握手,服务器很快就会因为这个而内存耗尽。在配置文件中改小AuthenticationTimeout的值(默认是60秒),貌似是唯一的解决办法。另外,如果采用长连接,我觉得那么采用ldap查找连接参数的意义并不大。
在上家公司用mysql集群的时候,DBA的建议是不要用长连接,因为他会试图给每个连接分配非常大的buffer并限制最大连接数,前者会显著提高检索效率。这些buffer所占的内存,在连接建立的时候被分配,在断开的时候释放。所以如果没有专门的连接层做连接池,不要使用长连接。而且这样程序也非常好写。而且mysql是在它自己内部做的process。
可如果是像wordpress这样的简单的php应用?怎么再搞一个连接池?
我正在看apache的dbd,还没看懂

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥