节点MySQL以最快的速度执行多个查询

哪个是最快速的方法获取到MYSQL的查询,然后返回到输出:

console.log('查询完成',结果)“

有没有更好的方法? 请解释你的答案!

谢谢!

方法1:

var connection = mysql.createConnection({multipleStatements: true}); connection.query('SELECT ?; SELECT ?', [1, 2], function(err, results) { if (err) throw err; console.log('queries done', results); }); 

方法2:

 const Db = mysql.createPool({ connectionLimit: 7, dateStrings: true, multipleStatements: true }); Db.getConnection(function(err, connection) { if(err) console.log(err); connection.query(` SELECT "1" AS "first"; SELECT "2" AS "second";`, function(err, results) { connection.release(); if(err) console.log(err); console.log('queries done', results); } ); }); 

方法3:

 const Db = mysql.createPool({ connectionLimit: 7, dateStrings: true, multipleStatements: true }); Db.getConnection(function(err, connection) { async.parallel([ function(callback) { connection.query(` SELECT "1" AS "first"`, function(err, done) { callback(err, done); } ); }, function(callback) { connection.query(` SELECT "2" AS "second"`, function(err, done) { callback(err, done); } ); } ], function(err, results) { connection.release(); if(err) console.log(err); console.log('queries finished', results); }); }); 

方法4:

 const Db = mysql.createPool({ connectionLimit: 7, dateStrings: true, multipleStatements: true }); async.parallel([ function(callback) { Db.getConnection(function(err, connection) { connection.query(` SELECT "1" AS "first"`, function(err, done) { connection.release(); callback(err, done); } ); }); }, function(callback) { Db.getConnection(function(err, connection) { connection.query(` SELECT "2" AS "second"`, function(err, done) { connection.release(); callback(err, done); } ); }); } ], function(err, results) { if(err) console.log(err); console.log('queries finished', results); }); 

而我没有发布它,但是方法3和4也可以在没有连接池的情况下完成。 还有使用npm模块asynchronous的承诺,什么是最快的,为什么? 谢谢。

在我的应用程序中使用3个真实查询的上述四个选项中,每个需要执行大约1-3秒,方法3对于任何感兴趣的人来说都是最快的。

方法1和2大约慢了1/2秒,而方法4只稍微慢了一点。

编辑:我做了这些基准通过在上面的评论中使用console.time('query')build议。