#node.js #aws-lambda #proxy #mysql2 #connection-pool
#node.js #aws-lambda #прокси #mysql2 #пул соединений
Вопрос:
У меня есть 4 отдельные таблицы в одной базе данных. Было бы лучше использовать mysql2.createConnection() или mysql2.createPool для массовой вставки в каждую таблицу? Я бы хотел запускать вставки асинхронно.
Код будет выполнять вставки из 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'
});
Ответ №1:
Если вы хотите запускать вставки асинхронно, вам понадобится createPool .
Потому что в случае с createConnection существует только 1 соединение, и все запросы, выполняемые по этому соединению, ставятся в очередь, и это на самом деле не асинхронно. (Асинхронный из node.js перспектива, но запросы выполняются последовательно)