Параллельные чтения в таблице MySQL слишком медленные - PullRequest
0 голосов
/ 22 октября 2019

Я использую nodejs, пакет mysql npm и пакет async npm. У меня 10 SELECT запросов, работающих на одной и той же таблице. Таблица содержит 1 миллион строк, а запрос объединяет 500 000 строк данных и имеет соответствующие индексы.

Когда я запускаю один из этих запросов, скорость обычно находится в диапазоне 1-2 секунды. Где, если, если я запускаю их все вместе, используя пул mysql, он варьируется между 10-16 секундами на каждый запрос.

Я не делаю никаких writes для этой таблицы во время чтения. Если я использую только одно соединение, скорости снова колеблются в пределах 1-2 секунд, но, поскольку они не работают параллельно, это все равно составляет до 10-12 секунд. Таким образом, любой из этих способов получает данные через 10 секунд и, следовательно, не является практически жизнеспособным вариантом. Почему запросы занимают так много времени? Они ждут завершения предыдущих запросов? Стоит ли мне что-то включать, чтобы избежать ожидания?

В запросах обычно есть предложения WHERE, GROUP BY и ORDER BY.

...