我继承了一个用 PHP 编写的 Web 应用程序,它使用 PostgresSQL 作为数据库服务器。我对 PHP 和 PostgresSQL 没有任何经验,我来自 Java / C# 背景。我正在研究它是如何工作的,当我对其进行分析时,我注意到老程序员在每次页面请求期间都会实例化一个名为 Database 的类,在该类中他使用以下方式打开与数据库的连接:
$this->connection = pg_connect($qs, PGSQL_CONNECT_FORCE_NEW)
探查器告诉我这是一个非常昂贵的调用(页面在 2.7 秒内加载......),我想知道是否以及何时真正需要标志 PGSQL_CONNECT_FORCE_NEW。由于连接字符串始终相同,因此我尝试使用 pg_pconnect 代替(甚至没有该标志的 pg_connect),并且页面加载时间仅为 741 毫秒。现在一切似乎都很好,但我有点担心这可能会在某个地方破坏应用程序,而且由于我没有 PHP 经验,所以我想知道使用该标志的做法是否有某种意义我需要检查的场景。显然,没有可依赖的单元测试。作为旁注,你知道关于这个 pg_(p)connect 如何真正工作的好资源吗?官方文档似乎不够深入。
谢谢!