Соединение Mysql против пула соединений

#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 перспектива, но запросы выполняются последовательно)