Синхронизация реализации MySQL запросов в узле - PullRequest
0 голосов
/ 10 июня 2019

Использовать mysql2 .

Правда ли, что если мы установим connectionLimit в 1, то запросы mysql будут выполняться последовательно (не параллельно)?

Например:

const mysql = require('mysql2');

const pool = mysql.createPool({
  host: 'localhost',
  user: 'name',
  password:'password',
  database: 'database',
  waitForConnections: true,
  connectionLimit: 1,
  queueLimit: 0
}).promise();


pool.query("SELECT 'long' as query_result FROM table where big_column like '%sometext%'").then(r=>{ console.log(r[0])}); // long query
pool.query("SELECT 'fast' as query_result").then(r=>{console.log(r[0])}); // fast query

// Result:
// [ TextRow { query_result: 'long'} ]
// [ TextRow { query_result: 'fast' } ]

1 Ответ

1 голос
/ 10 июня 2019

Да, следующие запросы будут поставлены в очередь до тех пор, пока соединение предыдущего запроса не будет освобождено обратно в пул.

Дополнительно, если вы установите для свойства waitForConnections значение false, следующие запросы будут возвращать ошибку, а не переходить в очередь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...