ホームページ > データベース > mysql チュートリアル > Node.js で MySQL 接続プーリングを効果的に実装するにはどうすればよいですか?

Node.js で MySQL 接続プーリングを効果的に実装するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-04 18:33:01
オリジナル
333 人が閲覧しました

How to Effectively Implement MySQL Connection Pooling in Node.js?

Node.js を使用した効果的な MySQL 接続プーリング

Node.js を使用して MySQL データベースにアクセスするときに最適なパフォーマンスを達成するには、接続プーリングを実装します。重要な。この記事では、node-mysql モジュールを使用して、この目的のためにアプリケーションを構築するための効果的なアプローチを示します。

接続プーリング モジュール

質問で提供されている例では、接続が作成されます。次のコードを使用してプールを作成します。

<code class="javascript">var pool = mysql.createPool({
    host: 'localhost',
    user: 'root',
    password: 'root',
    database: 'guess'
});</code>
ログイン後にコピー

これにより、必要に応じて取得および解放できる、すぐに使用できる一連の接続が確立され、クエリごとに個別の接続を作成および破棄するオーバーヘッドが排除されます。

データベース クエリ

クエリを実行するには、mysql モジュールを要求し、接続を初期化できます:

<code class="javascript">var mysql = require('../db/mysql').pool;

var test = function(req, res) {
    mysql.getConnection(function(err, conn) {
        conn.query("select * from users", function(err, rows) {
            res.json(rows);
        })
    })
}</code>
ログイン後にコピー

接続のみを返す

接続へのアクセスを簡素化するには、mysql モジュールのエクスポート セクションを次のように変更できます。

<code class="javascript">var pool = mysql.createPool({ ... });

var getConnection = function(callback) {
    pool.getConnection(function(err, connection) {
        callback(err, connection);
    });
};

module.exports = getConnection;</code>
ログイン後にコピー

この変更により、代わりに getConnection を呼び出すことで接続を取得できます。 pool.getConnection.

接続の解放

クエリの完了後、接続を解放してプールに戻すことが重要です:

<code class="javascript">connection.release();</code>
ログイン後にコピー

接続の解放に失敗すると保留が発生し、最終的にプールが使い果たされてパフォーマンスが低下する可能性があります。

結論

接続プーリングを採用し、これらのベスト プラクティスに従うことで、 Node.js アプリケーションの効率的な接続管理メカニズムを確立できます。このアプローチにより、MySQL データベースへのシームレスかつ最適化されたアクセスが可能になり、最適なパフォーマンスとスケーラビリティが確保されます。

以上がNode.js で MySQL 接続プーリングを効果的に実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート