Назад к вопросам
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';
В результате время выполнения запросов сократилось с нескольких секунд до долей секунды.