Вступить в клуб →
сложнаявопросSQL и проверка интеграций по API

Диагностический SELECT по боевой базе замедлил отчёты: как надо было действовать

Разбирая обращение, вы выполнили на боевой базе:

SELECT * FROM operations WHERE comment LIKE '%возврат%';

Таблица operations содержит сотни миллионов строк. Запрос выполнялся двадцать минут, всё это время у клиентов росли задержки в отчётах, и в поддержку пришли новые обращения.

Как надо было действовать?

  • Выполнить тот же запрос ночью: днём боевая база всегда работает медленно из-за пользовательской нагрузки
  • Выполнять диагностику на реплике для чтения, ограничивать выборку по индексируемым полям и добавлять LIMIT
  • Разбить запрос на десять таких же по диапазонам id и запустить их одновременно, чтобы каждый отработал быстрее
  • Выгрузить таблицу целиком запросом без условий и отфильтровать результат уже в клиенте — так нагрузка на базу меньше

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела