Сейчас покажу вам, как ускорить медленный SQL-запрос, который выполняется слишком долго. Если у вас в проекте есть запросы, которые выполняются секундами, а не миллисекундами, пора что-то менять!
Разбор примера
Допустим, у нас есть такой запрос:
Кажется простым, но выполняется медленно. В чём может быть проблема?
Основные причины тормозов:
Нет нужного индекса – если customer_id или order_date не индексированы, база будет делать полный скан таблицы.
Слишком много данных – если таблица огромная, ORDER BY без индекса будет работать медленно.
Использование SELECT * – загружает ненужные колонки и увеличивает нагрузку.
Как ускорить?
Добавляем индекс (если его нет):
Выбираем только нужные колонки:
Лимитируем выборку (если нужен только последний заказ):
Итог
Добавление индекса + правильный выбор колонок + LIMIT = в разы быстрее!
А какие приёмы оптимизации запросов используете вы? Делитесь в комментариях!
Разбор примера
Допустим, у нас есть такой запрос:
SQL:
SELECT *
FROM orders
WHERE customer_id = 123
ORDER BY order_date DESC;
Основные причины тормозов:



Как ускорить?

SQL:
CREATE INDEX idx_orders_customer ON orders(customer_id, order_date DESC);

SQL:
SELECT order_id, order_date
FROM orders
WHERE customer_id = 123
ORDER BY order_date DESC;

SQL:
SELECT order_id, order_date
FROM orders
WHERE customer_id = 123
ORDER BY order_date DESC
LIMIT 1;
Итог
Добавление индекса + правильный выбор колонок + LIMIT = в разы быстрее!
А какие приёмы оптимизации запросов используете вы? Делитесь в комментариях!