Назад к вопросам
Senior
9
Есть ли опыт оптимизации SQL-запросов? Приведите пример.
Компании, где спрашивали
ИП Ганус Александр Андреевич
Ответ от нейросети
sobes.tech AI
Да, есть опыт оптимизации SQL-запросов. Например, однажды был запрос, который долго выполнялся из-за отсутствия индексов и неэффективных JOIN.
Исходный запрос:
SELECT orders.id, customers.name, orders.total
FROM orders
JOIN customers ON orders.customer_id = customers.id
WHERE orders.status = 'completed'
AND customers.region = 'Europe';
Оптимизации:
- Добавил составной индекс на таблицу
ordersпо полям(status, customer_id). - Добавил индекс на поле
regionв таблицеcustomers. - Переписал запрос, чтобы сначала фильтровать по
orders.status, а затем делать JOIN, используя подзапрос:
SELECT o.id, c.name, o.total
FROM (
SELECT id, customer_id, total
FROM orders
WHERE status = 'completed'
) o
JOIN customers c ON o.customer_id = c.id
WHERE c.region = 'Europe';
Результат: время выполнения сократилось с нескольких секунд до долей секунды за счет уменьшения объема данных на этапе JOIN и использования индексов.