Mysql连接与连接池

问题描述

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

代码将执行来自AWS Lambda的插入,并且连接通过RDS代理完成,该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角度异步,但是查询是按顺序执行的)