使用池中的單個連線執行多個查詢

可能存在設定 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 文件