PostgreSQL永久连接:在我的情况下很有用


PostgreSQL permanent connection: usefull in my case?

我有一个PHP应用程序,它被GET parametersPG and nginx一起运行。页面A接收一条消息和一些信息。页B进行路由。页面C使用CURL调用外部应用程序。当我投入生产时,我每个月将收到多达1-2百万的请求。

我的问题是关于pg_pconnect函数。如果有来自不同位置的呼叫,连接是否被重用?我的意思是,是不是每次打开a页的时候都把它关闭就好了?(来自不同位置的服务器将调用我的应用程序)对于页面B和C,脚本将在无限循环中调用它们(如果没有消息要处理,则等待10秒)。由于请求总是来自同一位置,是否值得为页面B使用永久连接?C ?

我希望我的解释足够清楚。

谢谢!

总的来说,我认为在您的情况下,您可能会看到持久连接的一些好处。当然也有缺点,但只要你牢记在心,这些缺点都是可以控制的。但是,您可能需要进一步考虑使用实际的连接池。

最大的问题是,通常PostgreSQL在并发连接低于大约2个CPU内核和1个磁盘主轴(由于I/O等待时间)时表现最好。这当然不是确切的,但它给了你一个想法,给定你的硬件和资源,期望什么。

在Linux/UNIX平台上,连接启动/关闭的开销不是那么大,但是管理并发性对于保持程序快速运行可能是至关重要的。因此,我将从持久连接开始,然后如果我需要一些额外的控制,则移动到连接池。

主要的缺点是,当其他数据库连接到数据库时,某些数据库操作无法执行。如果你需要从备份中恢复,你可能需要确保先断开web应用。