Дорогое ActiveRecord считает Postgres разрушить производительность - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть пара сложных запросов, которые при индивидуальном запуске возвращаются примерно через 10 мс.

Они обычно принимают форму областей ActiveRecord.

Однако они приносят нашу продукциюСистема на колени.Эти конкретные области видимости в нашем приложении разбиты на страницы.

Запрашивающие запросы всегда counts.ActiveRecord должен автоматически выполнять подсчет, когда данные должны быть разбиты на страницы.

Postgres действительно ужасен при подсчете.В дополнение к этому, он одержим получением точных подсчетов.В результате подсчеты создают ExclusiveLock для базовых таблиц.

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

Есть личто-нибудь, что можно сделать, чтобы Postgres не блокировал каждую отдельную таблицу и индекс, связанный с этими запросами, простым подсчетом?

...