Node.js mysql createPool Иногда тупик ... но почему? - PullRequest
0 голосов
/ 03 января 2019

У меня проблема: я изменил mysql с createConnection на createPool. Но иногда, когда выполняется много запросов, я получаю взаимоблокировку.

Вот бассейн

var db_config = {
connectionLimit : 1000,
    host: 'localhost',
    user: '******',
    password: '******',
    database: '******.com'
};
pool = mysql.createPool(db_config);
pool.getConnection(function(err, connection) {
    if(err) {
        logger.error('[ERROR] Connecting to database "' + err.toString() + '"');
        setTimeout(function() { database_connection(); }, 2500);
    }
    else
    {
        pool.query('SET NAMES utf8');
        pool.query('SET CHARACTER SET utf8');
        logger.trace('[INFO] Connected to database and set utf8!');
    }
});

Это соединение с базой данных

Но по любой причине, когда много запросов отправляются одновременно или что-то, я получаю тупиковое сообщение

Обнаружен тупик при попытке получить блокировку; попробуйте перезапустить транзакцию

Каждый запрос, который использовался для запросов, выглядит так

pool.query('SELECT * users');

Я прочитал, что запрос объединяет соединение + запрос + выпуск, вот что я прочитал.

Но я не знаю, почему столько раз тупик ... у кого-нибудь есть идеи? : /

Таблицы InnoDB MySQL

...