4

このnode-mysqlモジュールには、単一接続と接続プールの 2 つの接続オプションがあります。すべてのリクエストに対して単一のグローバル接続を使用するか、接続のプールを作成してリクエストごとにプールから 1 つを取得する、MySQL データベースへの接続をセットアップする最良の方法は何ですか? または、これを行うより良い方法はありますか?すべてのリクエストに対して単一の共有接続を使用すると、問題が発生しますか?

4

1 に答える 1

6

アプリ全体で単一の接続を維持するのは少し難しいかもしれません。

インスタンスへの接続を開き、接続が確立されるのを待ちます。

この時点から、データベースの使用を開始できます (HTTP(S) サーバーを起動し、要求を処理し、必要に応じてデータベースにクエリを実行することもできます)。

問題は、接続が切断された場合です (ネットワーク エラーが原因で発生した場合など)。アプリケーション全体で 1 つの接続を使用しているため、MySQLに再接続し、接続が確立されている間、何らかの方法ですべてのクエリをキューに入れる必要があります。このような機能を適切に実装することは比較的困難です。

node-mysql組み込みのプーラーがあります。プーラーは、いくつかの接続を作成し、それらをプールに保持します。プールから取得した接続を閉じたいときはいつでも、プーラーはそれを実際に閉じるのではなく、プールに返します。プール上の接続は、次回のオープン コールで再利用できます。

接続プールを使用する IMO は明らかに単純であり、パフォーマンスに大きな影響を与えるべきではありません。

于 2013-09-25T17:42:14.337 に答える