Node.js
Mysql anslutningspool
Sök…
Använda en anslutningspool utan databas
Uppnå multitenancy på databaseserver med flera databaser värd på den.
Multitenancy är vanligt förekommande för företagstillämpning idag och det rekommenderas inte att skapa anslutningspool för varje databas i databaseserver. så vad vi kan göra istället är att skapa anslutningspool med databaseserver och än växla mellan databaser som finns på databasserver på begäran.
Anta att vår ansökan har olika databaser för varje företag som är värd på databasservern. Vi kommer att ansluta till respektive fast databas när användaren träffar applikationen. här är exemplet på hur man gör det: -
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);
});
});
Låt mig dela upp exemplet: -
När jag definierade poolkonfigurationen gav jag inte databasnamnet utan gav bara databasservern, dvs
{
connectionLimit : 10,
host : 'example.org',
user : 'bobby',
password : 'pass'
}
så när vi vill använda den specifika databasen på databasservern ber vi anslutningen att träffa databasen genom att använda: -
connection.changeUser({database : "firm1"});
Du kan hänvisa till den officiella dokumentationen här