ホームページ データベース mysql チュートリアル Node.js と MySQL による接続プーリングはアプリケーションのパフォーマンスをどのように向上させますか?

Node.js と MySQL による接続プーリングはアプリケーションのパフォーマンスをどのように向上させますか?

Nov 05, 2024 am 09:10 AM

How Does Connection Pooling with Node.js and MySQL Boost Your Application's Performance?

Node.js と MySQL による接続プーリング

アプリケーションによる MySQL の使用を最適化すると、パフォーマンスと効率が向上します。この記事では、node-mysql モジュールを使用した接続プーリング手法について説明します。

接続プーリング

接続プーリングにより、クエリごとにデータベースへの個別の接続を確立する必要がなくなります。代わりに、再利用可能な接続のプールが維持され、クエリの実行速度が向上し、リソース消費が削減されます。

接続プーリングの実装

接続プーリングを実装するには、次を使用してプール オブジェクトを作成します。 mysql モジュールの createPool() 関数:

var mysql = require('mysql');

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

再利用のためにプール オブジェクトを別のモジュール (例: mysql.js) に保存します。

データベースのクエリ

接続プールを使用してクエリを実行するには、mysql.js モジュールを要求し、接続を取得します:

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);
        });
    });
};
ログイン後にコピー

ベスト プラクティス

  • プール サイズ: アプリケーションの予想される負荷に基づいて最適なプール サイズを決定します。
  • 接続処理: release() を使用して接続をプールに解放します。メソッド。
  • 接続終了: 接続が不要になった場合は、プールに解放された場合でも手動で閉じます。

接続の返却プールから

接続の取得を簡略化するには、接続を取得する関数を返すように mysql モジュールを変更します:

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

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

これにより、接続を直接取得できるようになります:

var getConnection = require('../db/mysql');

getConnection(function (err, connection) {
    // Use the connection...
});
ログイン後にコピー

以上がNode.js と MySQL による接続プーリングはアプリケーションのパフォーマンスをどのように向上させますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

DockerでのMySQLメモリの使用を減らします DockerでのMySQLメモリの使用を減らします Mar 04, 2025 pm 03:52 PM

DockerでのMySQLメモリの使用を減らします

Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか? Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか? Mar 19, 2025 pm 03:51 PM

Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

mysqlの問題を解決する方法共有ライブラリを開くことができません mysqlの問題を解決する方法共有ライブラリを開くことができません Mar 04, 2025 pm 04:01 PM

mysqlの問題を解決する方法共有ライブラリを開くことができません

sqliteとは何ですか?包括的な概要 sqliteとは何ですか?包括的な概要 Mar 04, 2025 pm 03:55 PM

sqliteとは何ですか?包括的な概要

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし) Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし) Mar 04, 2025 pm 03:54 PM

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド Mar 04, 2025 pm 03:49 PM

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか? 共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか? Mar 18, 2025 pm 12:00 PM

共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか?

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか? MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか? Mar 18, 2025 pm 12:01 PM

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?

See all articles