Mysql 连接与连接池

Mysql Connection vs Connection Pool

我在同一数据库中有 4 个独立的 table。使用 mysql2.createConnection() 或 mysql2.createPool 批量插入每个 table 会更好吗?我想 运行 异步插入。

代码将执行来自 AWS Lambda 的插入,并通过 RDS 代理完成连接,该代理处理连接到 Aurora MySql 数据库实例的所有连接的连接池。

const mysql2 = require('mysql2');

const connection = mysql2.createConnection({
  host     : 'example.org',
  user     : 'bob',
  password : 'secret'
});

mysql2.createPool

const mysql2 = require('mysql2');

const pool  = mysql2.createPool({
  connectionLimit : 10,
  host            : 'example.org',
  user            : 'bob',
  password        : 'secret' 
});

如果您想 运行 异步插入,您需要 createPool。

因为在 createConnection 中,只有 1 个连接,并且在该连接上执行的所有查询都在排队,这并不是真正的异步。 (从 node.js 的角度来看是异步的,但查询是按顺序执行的)