Открывает ли Sequelize новое соединение с базой данных для каждого выполнения запроса

Я использую nodejs и SequelizeJS для моей базы данных sql.

После того, как я проверю соединение,

sequelize
  .authenticate()
  .then(() => {
    console.log('Connection has been established successfully.');
  })
  .catch(err => {
    console.error('Unable to connect to the database:', err);
  });
  1. Есть ли Sequelize открывать новое соединение каждый раз, когда он выполняет SQL-команду или оно сохраняет открытое соединение и использует его повторно?

  2. Как я могу это проверить?

1 ответ

Открывает ли Sequelize новое соединение каждый раз, когда выполняет SQL-команду, или сохраняет открытое соединение и повторно использует его?

Sequqlize попытается повторно использовать существующее соединение в своем пуле. Конфигурация по умолчанию выглядит следующим образом. Вы можете посмотреть исходный код здесь

const defaultPoolingConfig = {
  max: 5,
  min: 0,
  idle: 10000,
  acquire: 10000,
  evict: 10000,
  handleDisconnects: true
};

Если приложению требуется больше подключений, а текущее число подключений меньше максимального, sequelize попытается создать новое подключение.

Как я могу это проверить?

Вы можете добавить запись в pool.create метод в продолжение, чтобы увидеть, если новое соединение сделано. Это также должно быть возможно в журнале базы данных, но я не уверен.

Другие вопросы по тегам