使用沒有資料庫的連線池

在託管有多個資料庫的資料庫伺服器上實現多租戶。

多租戶是當今企業應用程式的常見要求,不建議為資料庫伺服器中的每個資料庫建立連線池。所以,我們可以做的是建立與資料庫伺服器的連線池,而不是按需在資料庫伺服器上託管的資料庫之間切換。

假設我們的應用程式為資料庫伺服器上託管的每個公司提供不同的數當使用者點選應用程式時,我們將連線到相應的公司資料庫。這是關於如何做到這一點的例子: -

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"});

你可以在這裡參考官方文件