Диагностический SELECT по боевой базе замедлил отчёты: как надо было действовать
Разбирая обращение, вы выполнили на боевой базе:
SELECT * FROM operations WHERE comment LIKE '%возврат%';
Таблица operations содержит сотни миллионов строк. Запрос выполнялся двадцать минут, всё это время у клиентов росли задержки в отчётах, и в поддержку пришли новые обращения.
Как надо было действовать?
- Выполнить тот же запрос ночью: днём боевая база всегда работает медленно из-за пользовательской нагрузки
- Выполнять диагностику на реплике для чтения, ограничивать выборку по индексируемым полям и добавлять LIMIT
- Разбить запрос на десять таких же по диапазонам id и запустить их одновременно, чтобы каждый отработал быстрее
- Выгрузить таблицу целиком запросом без условий и отфильтровать результат уже в клиенте — так нагрузка на базу меньше
