Szukaj…


Korzystanie z puli połączeń bez bazy danych

Osiągnięcie multitenancy na serwerze bazy danych z wieloma bazami danych hostowanymi na nim.

Wielozadaniowość jest obecnie powszechnym wymogiem aplikacji korporacyjnych i nie jest zalecane tworzenie puli połączeń dla każdej bazy danych na serwerze bazy danych. więc zamiast tego możemy utworzyć pulę połączeń z serwerem bazy danych i przełączać się między bazami danych hostowanymi na serwerze bazy danych na żądanie.

Załóżmy, że nasza aplikacja ma różne bazy danych dla każdej firmy hostowanej na serwerze bazy danych. Po uzyskaniu dostępu do aplikacji połączymy się z odpowiednią firmową bazą danych. oto przykład, jak to zrobić:

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

Pozwól mi rozbić przykład:

Podczas definiowania konfiguracji puli nie podałem nazwy bazy danych, a jedynie serwer bazy danych, tj

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

więc gdy chcemy użyć konkretnej bazy danych na serwerze bazy danych, prosimy o połączenie z bazą danych za pomocą:

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

możesz zapoznać się z oficjalną dokumentacją tutaj



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow