Node.js は JavaScript に基づいたフロントエンド開発言語です。リアルタイム アプリケーションを構築するための非常に強力な機能を提供し、リクエストに迅速に応答し、多くの開発パターン (OO、関数型プログラミングなど) をサポートできます。 。)。 Node.js のノンブロッキング I/O 機能により超高速なパフォーマンスが得られ、近年最も人気のある開発言語の 1 つとなっています。ただし、Node.js を使用して開発する場合は、データベースの管理方法とデータベースへの接続方法も考慮する必要があります。データベース操作では、通常、データベース接続プール管理の問題など、いくつかの問題が発生します。そこで、Node.js接続プールの使い方を紹介します。
1. データベース接続プールとは何ですか?
データベース接続を確立するときに、次の問題が発生する可能性があります:
1. 各接続は新しい接続を確立する必要があります。ネットワーク接続の確立には時間がかかり、プログラムのパフォーマンスに影響します。
2. プログラムが頻繁にデータベースを開いたり閉じたりする必要がある場合、データベース リソースが占有されるため、Web サイトのトラフィックが多い場合、データベースが直接ダウンする可能性があります。
3. 接続は比較的高価なリソースであるため、同時実行性が高い条件下では、一度に複数の接続を要求するとメモリが枯渇する可能性があります。
これらの問題に対処するには、データベース接続プールを使用して解決します。接続プールはキャッシュ プールのようなものです。一連のデータベース接続を事前に確立してプールに配置できます。プログラムが接続を必要とするたびに、接続は接続プールから取得され、使用後にプールに返されます。時間とリソースを効果的に節約し、ネットワーク要求とサーバーのオーバーヘッドを削減します。
2. Node.js 接続プールの利用
Node.js 接続プールを利用する前に、npm の有名な MySQL モジュールを導入する必要があります。 Node.js MySQL モジュールは非常に便利な MySQL データベース接続ライブラリであり、MySQL データベースとの接続と対話を実現するための Connection クラス、Pool クラス、PoolCluster クラスを提供します。
まず、MySQL モジュールを Node.js にインストールして導入する必要があります。
npm install mysql
const mysql = require('mysql');
2.1 接続プールの確立
ビジネス ニーズに応じて、さまざまな数の接続プールを確立できます。たとえば、最大接続数 10、最小接続数 10 の接続プールを確立できます。 2.データベースが新しい接続を提供できない場合、プログラムは一定時間待機した後にエラーを報告します。コードは次のとおりです。
const pool = mysql.createPool({
ホスト: '127.0.0.1',
ユーザー: 'root',
パスワード: 'password',
データベース : 'mydb',
connectionLimit: 10,
queueLimit: 2
});
2.2 接続プールから接続を取得します
接続を確立しますプール 最後に、プログラムは操作を実行するために接続プールから接続を取得する必要があります。 MySQL モジュールでは、getConnection
メソッドを使用して接続プールから接続を取得します。
pool.getConnection(function(err, connection) {
if (err) throw err; console.log("连接成功!");
});
接続が成功すると、接続オブジェクトを通じてデータベース操作を実行できます。データベースのデータをクエリする場合。ビジネス要件を完了した後、プログラムは接続を接続プールに戻して、他の機能またはユーザーがデータベース操作を継続できるようにする必要があります。 release
メソッドを使用して、接続リソースを解放して接続プールに戻します。コードは次のとおりです:
pool.getConnection(function(err, connection) {
if (err) throw err; console.log("连接成功!"); connection.query('SELECT * FROM table1', function (error, results, fields) { // ... do something here with the results ... connection.release(); });
});
3. 接続プールの解放
実際に申請を行う際には、コネクションプールの解放ルールに注意する必要があります。接続プール内の接続が解放されない場合、大量のストレージおよびメモリ リソースが占有され、アプリケーションがクラッシュする原因になります。したがって、時間内に接続プール内の接続を解放する必要があります。
たとえば、Express.js フレームワークでは、app.on('close', callback)
メソッドを使用してアプリケーションを閉じ、そこにあるすべての接続プール接続を解放できます。コードは次のとおりです。
app.on('close', function(err) {
pool.end(function (err) {
if (err) throw err; console.log("数据库连接池已关闭!");
});
});
4. 概要
Node.js 接続プールを使用すると、データベース接続を効率的に管理し、プログラムのパフォーマンスを向上させ、リソースのオーバーヘッドとセキュリティ リスクを軽減できます。実際のアプリケーションでは、最適なパフォーマンスを達成するために、ビジネス ニーズとシステム タイプに応じて、対応する構成と調整を行う必要があります。
以上がnodejs接続プールの使用量の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。