sql >> データベース >  >> RDS >> PostgreSQL

pg-promiseを使用した接続プール

    私はpg-promise の作成者です 。

    データベース通信にはいくつかのレベルの最適化があります。それらの中で最も重要なのは、HTTPリクエストごとのクエリの数を最小限に抑えることです。これは、IOが高価であり、接続プールも高価であるためです。

    • HTTPリクエストごとに複数のクエリを実行する必要がある場合は、常にメソッドタスク
    • タスクにトランザクションが必要な場合は、メソッド tx
    • 複数の挿入または更新を行う必要がある場合は、常に複数行の操作を使用してください。 pg-promiseを使用した複数行の挿入 を参照してください およびNode.jsでのPostgreSQLの複数行の更新 。

    node-postgresはバージョン6.xからpg-poolの使用を開始しましたが、pg-promiseは内部接続プールの実装を使用するバージョン5.xのままです。 これが理由です

    この分野での私の長い実践は、次のことを示唆しています。サービスを20の接続のプールに収めることができない場合、接続を増やしても節約されないため、代わりに実装を修正する必要があります。また、20を超えると、CPUに追加の負担がかかり始め、それはさらに速度が低下することになります。

    データのサイズは、プールのサイズとは何の関係もありません。通常、1回のダウンロードまたはアップロードには、規模に関係なく1つの接続のみを使用します。実装が間違っていて、複数の接続を使用することにならない限り、アプリをスケーラブルにする場合は、それを修正する必要があります。

    次に利用可能な接続を待ちます。

    参照:



    1. SQL Serverのブロックとは何ですか?

    2. SpringBootHibernateクエリの無効なユーザーエラー

    3. 以前の選択に基づいてドロップダウンにデータを入力

    4. SQL SERVER –トリック–異なるWindowsアカウントでSSMSを実行する