Sobes.tech
Назад к вопросам
Senior
4

Расскажи про оптимизацию SQL запросов на 95% — в чём была проблема?

Компании, где спрашивали
ТБанк

Ответ от нейросети

sobes.tech AI

Оптимизация SQL-запросов на 95% была достигнута за счёт нескольких ключевых изменений:

  • Первоначально запросы использовали несколько вложенных подзапросов и JOIN без индексов, что приводило к полному сканированию таблиц.
  • Я проанализировал планы выполнения и добавил необходимые индексы по часто используемым колонкам.
  • Переписал запросы, заменив подзапросы на JOIN, где это было возможно, и убрал избыточные выборки.
  • Использовал агрегатные функции и группировки на стороне базы, чтобы уменьшить объём передаваемых данных.

Пример:

-- Было
SELECT * FROM orders WHERE customer_id IN (SELECT id FROM customers WHERE region = 'EU');

-- Стало
SELECT o.* FROM orders o JOIN customers c ON o.customer_id = c.id WHERE c.region = 'EU';

В результате время выполнения запросов сократилось с нескольких секунд до долей секунды.