Sobes.tech
Back to questions
Junior — Middle
72

Умеешь ли ты создавать и оптимизировать сложные SQL-запросы для получения данных?

Companies where asked
VKVK

Answer from AI

sobes.tech AI

Да, создание и оптимизация сложных SQL-запросов — важный навык для эффективной работы с базами данных. Оптимизация включает в себя:

  • Использование индексов для ускорения поиска.
  • Избегание избыточных JOIN-ов и подзапросов.
  • Применение агрегатных функций и группировок по необходимости.
  • Использование EXPLAIN для анализа плана выполнения запроса.

Пример сложного запроса, который выбирает пользователей с количеством заказов больше 5 и сортирует по дате последнего заказа:

SELECT u.id, u.name, COUNT(o.id) AS orders_count, MAX(o.order_date) AS last_order
FROM users u
JOIN orders o ON u.id = o.user_id
GROUP BY u.id, u.name
HAVING COUNT(o.id) > 5
ORDER BY last_order DESC;

Такой запрос можно оптимизировать, убедившись, что есть индексы на orders.user_id и orders.order_date.