サーチ…


データベースなしの接続プールの使用

複数のデータベースがホストされているデータベースサーバー上でマルチテナントを実現する。

今日、エンタープライズアプリケーションのマルチテナント性が一般的な要件であり、データベースサーバーの各データベースに接続プールを作成することはお勧めしません。ですから、データベースサーバーとの接続プールを作成し、必要に応じてデータベースサーバー上にホストされているデータベース間で切り替えることができます。

私たちのアプリケーションが、データベースサーバ上にホストされている各企業ごとに異なるデータベースを持っているとします。ユーザーがアプリケーションにヒットすると、それぞれの企業データベースに接続します。ここでそれを行う方法の例です:

var pool  = mysql.createPool({
      connectionLimit : 10,
      host            : 'example.org',
      user            : 'bobby',
      password        : 'pass'
    });
    
pool.getConnection(function(err, connection){
    if(err){
        return cb(err);
    }
    connection.changeUser({database : "firm1"});
    connection.query("SELECT * from history", function(err, data){
        connection.release();
        cb(err, data);
    });
});

私は例を分解しましょう:

プール設定を定義するとき、私はデータベース名を与えず、データベースサーバだけを与えました。

{
  connectionLimit : 10,
  host            : 'example.org',
  user            : 'bobby',
  password        : 'pass'
}

データベースサーバー上の特定のデータベースを使用する場合は、次のコマンドを使用してヒットデータベースへの接続を尋ねます。

    connection.changeUser({database : "firm1"});

あなたは公式の文書をここで参照することができます



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow