问题描述
我在同一数据库中有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角度异步,但是查询是按顺序执行的)