使用池中的单个连接运行多个查询

可能存在设置 MySQL 连接池的情况,但是你希望按顺序运行许多查询:

SELECT 1;
SELECT 2;

可以其他地方使用 pool.query 运行,但是如果你在池中只有一个空闲连接,则必须等到连接可用,然后才能运行第二个查询。

但是,你可以保留池中的活动连接,并使用 pool.getConnection 使用单个连接运行尽可能多的查询:

pool.getConnection(function (err, conn) {
  if (err) return callback(err);

  conn.query('SELECT 1 AS seq', function (err, rows) {
    if (err) throw err;

    conn.query('SELECT 2 AS seq', function (err, rows) {
      if (err) throw err;

      conn.release();
      callback();
    });
  });
});

注意: 你必须记住 release 连接,否则池的其余部分可以使用少一个 MySQL 连接!

有关池连接 MySQL 连接的更多信息,请查看 MySQL 文档