Автор: DB_tuner Открыта для предложений Шагов: 4

SQL-запрос: с 45 секунд до 20 миллисекунд

🎯 Применение в проектах

0
участников
0
проектов
4
шагов

Кратко

Запрос к таблице 10 млн строк выполняется 45 секунд.

Контекст

Запрос к таблице 10 млн строк выполняется 45 секунд.

Результат

Запрос ускорился в 2250 раз.

Шаги

1

Диагностика

Автор: DB_tuner
EXPLAIN SELECT * FROM orders WHERE user_id = ? AND status = 'paid' ORDER BY created_at DESC LIMIT 10. Видим: type=ALL, rows=10000000.
2

Анализ

Автор: DB_tuner
Нет подходящего индекса. Таблица сканируется полностью. Сортировка через filesort.
3

Индекс

Автор: DB_tuner
CREATE INDEX idx_user_status_created ON orders(user_id, status, created_at DESC).
4

Проверка

Автор: DB_tuner
Повторный EXPLAIN: type=ref, rows=120, Extra=Using index condition. Запрос 20 мс вместо 45 секунд.

Предложить шаг

Ваше улучшение будет отправлено владельцу инструкции на одобрение.

Совет: если инструкция получается очень большой — более 10–15 шагов, имеет смысл собрать ее в полноценный курс на online.tfeya.ru. Там можно разбить материал по модулям, добавить тесты и отслеживать прогресс участников.