PostgresSQLをデータベースサーバーとして使用するPHPで記述されたWebアプリケーションを継承しました。私は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が実際にどのように機能するかについての優れたリソースを知っていますか?公式ドキュメントは十分に深くないようです。
ありがとうございました!