最快的方法是获取到MYSQL的查询,然后返回输出:
console.log('queries finished', results)"
还有更好的方法吗?请解释你的答案!
谢谢!
方法一:
var connection = mysql.createConnection({multipleStatements: true});
connection.query('SELECT ?; SELECT ?', [1, 2], function(err, results) {
if (err) throw err;
console.log('queries done', results);
});
方法二:
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);
}
);
});
方法三:
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);
});
});
方法四:
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 模块异步的 promise ,什么是最快的,为什么!?谢谢。
最佳答案
在我的应用程序中使用 3 个真实查询的上述四个选项中,每个查询都需要大约 1-3 秒的时间来执行,对于任何感兴趣的人来说,方法 3 最终是最快的。
方法 1 和方法 2 慢了整整 1/2 秒,而方法 4 只是稍微慢了一点点。
编辑:我通过使用上面评论中的 console.time('query')
建议完成了这些基准测试。
关于mysql - Node MySQL 以最快的速度执行多个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41513128/