node-mysql の接続プール機能を使用すると、アプリケーションで問題が発生しませんconnection.end()
か? 私が懸念している理由は次のとおりです。SQL で変数を定義するか、トランザクションを開始すると、変数またはトランザクションは、接続が閉じられるまで持続します。接続が実際に閉じられることはなく、代わりに再利用されるため、変数とトランザクションは、変数やトランザクションの存在を予期しない別のルーチンに浸透する可能性があります。新しい接続が必要です。
変数は大きな問題を引き起こす可能性があります。ルーチンは、変数が未定義であると安全に想定することはできません。
1 つのルーチンが を呼び出す前にトランザクションのロールバックまたはコミットに失敗した場合、トランザクションはさらに大きな問題を引き起こす可能性がありend()
ます。この接続を使用する次のルーチンがトランザクションを処理しない場合、すべてのクエリがトランザクションに追加されて停止され、実行されることはありません。アプリを作成するときに、そのようなエラーが発生しないように注意することはできますが、間違いは発生します。エラーが発生した場合は、デバッグが非常に困難になります (どのルーチンが接続を誤って処理しているのかわかりません。悪い悪い)。
これらは、プーリングの使用を検討する際の私の懸念事項の一部です。確かに、これらの問題について考えたのは私だけではありません。よろしければ、プールされた接続を適切に処理する方法を教えてください。:)
どうもありがとうございました。