← К оглавлению занятия

🏠 Домашнее задание

📁 Блок: SQL / MySQL / Оптимизация ⏱️ Время изучения: ~90 мин 🎯 Сложность: Продвинутая

⚡ Кратко: домашка

Оптимизация запросов нужна, чтобы уменьшить время выполнения и расход ресурсов базы данных.

Главный инструмент урока — индекс: структура данных, которая помогает быстрее находить строки без полного просмотра таблицы.

Ключевые команды: CREATE INDEX, CREATE UNIQUE INDEX, CREATE FULLTEXT INDEX, EXPLAIN.

Минимальный пример: CREATE INDEX idx_students_age ON students(age), затем EXPLAIN SELECT * FROM students WHERE age = 20.

Индекс полезен для частых фильтров, сортировок и группировок, но он занимает место и замедляет вставку, обновление и удаление.

Топ-3 ошибки: индексировать все столбцы подряд, не проверять план через EXPLAIN, ждать пользы от индекса на очень маленькой таблице.

🏠 Домашнее задание

В источнике отдельное LMS-домашнее задание не приведено, но практическая работа подходит как закрепление после занятия.

  1. Создать таблицу students и заполнить её тестовыми строками.
  2. Выполнить EXPLAIN SELECT * FROM students WHERE age = 20 до создания индекса.
  3. Создать индекс idx_students_age и повторить EXPLAIN.
  4. Сравнить планы и записать, появился ли индекс в выводе.

Пошаговое решение и проверка

Проверка до и после индекса

EXPLAIN
SELECT *
FROM students
WHERE age = 20;

CREATE INDEX idx_students_age ON students (age);

EXPLAIN
SELECT *
FROM students
WHERE age = 20;

Главная цель — увидеть, меняется ли план выполнения после появления индекса.