sql >> Database teknologi >  >> RDS >> Mysql

node-mysql forbindelse pooling

Opdatering:feb 2013 - puljeunderstøttelse er blevet tilføjet til node-mysql, se dokumenter a>

Eksempel ved brug af indbygget pool:

var pool = require('mysql').createPool(opts);

pool.getConnection(function(err, conn) {
  conn.query('select 1+1', function(err, res) {
    conn.release();
  });
});

Løsninger før 2013:

Du kan bruge node-pool eller mysql-pool eller brug din egen simple round-robin pool

function Pool(num_conns)
{
    this.pool = [];
    for(var i=0; i < num_conns; ++i)
        this.pool.push(createConnection()); // your new Client + auth
    this.last = 0;
}

Pool.prototype.get = function()
{
    var cli = this.pool[this.last];
    this.last++;
    if (this.last == this.pool.length) // cyclic increment
       this.last = 0;
    return cli;
}

nu kan du håbe på, at alle forespørgsler skal udføres på 1 sekund:

var p = new Pool(16);
for (var i=0; i < 10; ++i)
{
    p.get().query('select sleep(1)', function() { console.log('ready'); } ); // server blocks for 1 second
}


  1. PDO og php - Kald til en medlemsfunktion prepare() på et ikke-objekt

  2. Er forbindelsespooling et must-have i ODP.NET?

  3. android.database.sqlite.SQLiteCantOpenDatabaseException:ukendt fejl (kode 14):Kunne ikke åbne databasen

  4. Advarsel:mysql_num_rows() forventer, at parameter 1 er ressource, boolean givet i /home/folder/public_html/folder/folder/login.php på linje 18