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

У меня есть 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'
});

or

mysql2.createPool

const mysql2 = require('mysql2');

const pool  = mysql2.createPool({
  connectionLimit : 10,
  host            : 'example.org',
  user            : 'bob',
  password        : 'secret' 
});

person navig8tr    schedule 05.10.2020    source источник


Ответы (1)


Если вы хотите запускать вставки асинхронно, вам понадобится createPool.

Потому что с createConnection есть только одно соединение, и все запросы, выполняемые для этого соединения, ставятся в очередь, и это не совсем асинхронно. (Асинхронно с точки зрения node.js, но запросы выполняются последовательно)

person Eric Wong    schedule 05.10.2020