Оптимизируем SQL-запросы – индексы, которые вы могли забыть

GuDron

dumpz.ws
Admin
Регистрация
28 Янв 2020
Сообщения
9,259
Реакции
1,542
Credits
32,263
Оптимизация SQL-запросов – это как чистка кода: делаешь вовремя, и всё летает, откладываешь – потом разгребаешь баги и тормоза. Сегодня о трёх индексах, которые часто упускают:

✅ Составные индексы
Ошибка: делать индекс на одно поле, если запрос использует WHERE col1 = X AND col2 = Y.
Правильный индекс:
SQL:
CREATE INDEX idx_example ON table_name (col1, col2);
Запрос ускорится, потому что БД не будет делать лишние проверки.

✅ Индекс для ORDER BY
Ошибка: сортировка без индекса приводит к сканированию всей таблицы.
Решение – индекс в порядке сортировки:
SQL:
CREATE INDEX idx_order ON table_name (col1 ASC);

✅ Индекс на FOREIGN KEY
Ошибка: внешний ключ без индекса – медленный джойн.
Исправляем:
SQL:
CREATE INDEX idx_fk ON table_name (foreign_key_column);

Бонус: если не знаете, какой индекс поможет – посмотрите EXPLAIN ANALYZE в PostgreSQL или EXPLAIN в MySQL.