Node.js で MySQL 接続プールを使用および管理するためのベスト プラクティス

王林
リリース: 2023-06-30 09:06:08
オリジナル
1489 人が閲覧しました

Node.js プログラムで MySQL 接続プールを正しく使用および管理するにはどうすればよいですか?

Node.js はサーバーサイド開発言語として非常に人気があり、その非同期のイベント駆動型機能により、大量の同時リクエストの処理に優れています。データベースは開発プロセスに不可欠な部分です。 MySQL は、成熟した信頼性の高いリレーショナル データベース管理システムとして、Node.js 開発で一般的に使用されるデータベースの 1 つでもあります。

Node.js では、データベース接続を効率的に管理するために、開発者は接続プールを使用することがよくあります。接続プールを使用すると、各リクエストでのデータベース接続の確立と終了のオーバーヘッドが削減され、パフォーマンスと効率が向上します。以下では、Node.js プログラムで MySQL 接続プールを正しく使用および管理する方法を紹介します。

  1. 依存ライブラリのインストール
    まず、開始する前に、2 つの npm パッケージ mysql と mysql2 をインストールする必要があります。次の名前を使用してインストールできます。
npm install mysql mysql2 --save
ログイン後にコピー
  1. データベース接続プールの作成
    Node.js では、mysql または mysql2 ライブラリを使用して MySQL 接続プールを作成できます。以下は、接続プールを作成するサンプル コードです。
const mysql = require('mysql');
const pool = mysql.createPool({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'database_name',
  connectionLimit: 10  // 连接池中的最大连接数
});

module.exports = pool;
ログイン後にコピー

この例では、mysql ライブラリを使用して、pool という名前の接続プールを作成し、ホスト名を指定します。データベース、ユーザー名、パスワード、データベース名、および接続プール内の最大接続数。

  1. データベース操作に接続プールを使用する
    接続プールを通じて、接続プールから接続を簡単に取得し、データベース操作を実行し、操作後に接続を解放して接続プールに戻すことができます。完成されました。以下は、データベース操作に接続プールを使用する例です:
const pool = require('./db');  // 引入连接池

pool.getConnection((error, connection) => {
  if (error) throw error;

  // 执行数据库操作
  connection.query('SELECT * FROM table_name', (error, results, fields) => {
    // 处理查询结果
    if (error) throw error;
    console.log(results);

    // 释放连接
    connection.release();
  });
});
ログイン後にコピー

この例では、pool.getConnection メソッドを使用して、接続プールから接続オブジェクトを取得します。を指定し、これを渡します。 接続オブジェクトはデータベース操作を実行します。操作が完了したら、connection.release() メソッドを呼び出して接続を接続プールに戻し、他のリクエストが引き続きその接続を使用できるようにする必要があります。

  1. エラー処理
    データベース操作に接続プールを使用する場合は、エラー処理に注意する必要があります。エラーは、コールバック関数の error パラメータをチェックすることで処理できます。たとえば、try-catch ブロックを使用してエラーをキャッチして処理したり、統合処理のためにグローバル エラー処理ミドルウェアにエラーを渡したりできます。
pool.getConnection((error, connection) => {
  if (error) {
    // 处理错误
    console.error(error);
    return;
  }

  // 执行数据库操作
  connection.query('SELECT * FROM table_name', (error, results, fields) => {
    if (error) {
      // 处理错误
      console.error(error);
      return;
    }

    console.log(results);

    // 释放连接
    connection.release();
  });
});
ログイン後にコピー
  1. 接続プールの自動解放
    場合によっては、手動で接続を解放し忘れる可能性があります。接続リークを回避するには、接続プールの options を設定し、waitForConnectionstrue に設定します。これにより、接続プールにアイドル状態の接続がないときに、 、新しい接続リクエストは、接続が利用可能になるまで遅延されます。
const pool = mysql.createPool({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'database_name',
  connectionLimit: 10,
  waitForConnections: true  // 设置为true
});
ログイン後にコピー

概要:
MySQL 接続プールを正しく使用および管理することで、Node.js プログラムのパフォーマンスと信頼性を向上させることができます。接続プールが大きすぎる、または小さすぎるという問題を避けるために、接続プールのサイズは特定の状況に応じて調整する必要があることに注意してください。さらに、潜在的なセキュリティ問題やデータの一貫性の問題を回避するために、データベース操作のエラーを適切に処理する必要があります。

以上がNode.js で MySQL 接続プールを使用および管理するためのベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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