私たちはC++アプリケーションのデータを格納するPostgreSQLデータベースを持っており、libpqxxを使って接続しています。PostgreSQLデータベース接続を開く効率
現在、実行するトランザクションごとに新しいpqxx::connection
を開きます。デプロイメントでは、毎分約4〜5ダースのトランザクションを実行することが予想され、アプリケーションは24x7x365で実行されます。 PostgreSQLのarchitectural fundamentals、
... [PostgreSQLサーバプロセスが( "フォーク")を開始し、各接続のための新たな方法によれば
。私たちは、間接的に数十人の新しいプロセス毎分産卵しているため、すべてのトランザクションのための新しい
pqxx::connection
を開く我々の方法のように私に聞こえる
は、本当に非効率的です。これは私たちが本当に心配しなければならないものですか?
here on the PostgreSQL wiki私はPostgreSQL自体がクライアント接続プロセスのプールを維持していないので、実際にはそれについて心配する必要があるようです。もしそうなら、pqxx::connection
のオブジェクトを無期限に保つ「適切な」方法があります。そうすれば、データベースに接続するたびに新しいプロセスがフォークされないようにすることができますか?私のアプリケーションは毎日、毎日実行する必要があることを覚えておいてください。そうすれば、TCP接続が長期間に渡ってドロップすることは受け入れられません。
ご回答ありがとうございます。私は入力を感謝します。この非効率性を私たちのコードで文書化して、将来の拡張のための場所として確かめるでしょう:) – villapx