node.js - 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 的角度来看是异步的,但查询是按顺序执行的)
推荐阅读
- azure - 尝试在 ARM 模板中添加 VNET 服务端点时出现问题
- python - 在 Mac 上无法关闭 Pygame 窗口问题
- javascript - 如果 var 已经存在,则需要 let
- css - 使用 SASS 从颜色中提取 H、S、L 值
- paypal - 贝宝“CURRENCY_NOT_ALLOWED”
- c# - 加快从远程 URL 检索文件大小
- sql - 在 where 子句中避免 coalesce() 或 case
- javascript - 搜索文本修剪脚本后 livewire 不起作用“...查看更多”
- github-pages - 如何获取 gh 页面的下拉菜单?
- node.js - 为什么 Eclipse 需要 node.js?