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

📝 Задания

📁 Блок: 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, ждать пользы от индекса на очень маленькой таблице.

📝 Практические задания

1

Создать таблицу students

Создайте таблицу students со столбцами id INT, name VARCHAR, age INT, grade DECIMAL.

2

Добавить строки

Заполните таблицу несколькими строками.

3

Создать индекс age

Создайте индекс на столбец age, чтобы ускорить поиск по возрасту.

4

Написать SELECT

Напишите запрос, который выбирает всех студентов определённого возраста.

5

Проверить EXPLAIN

Просмотрите план выполнения запроса с помощью EXPLAIN.

Проверка понимания

Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.

Вопрос 1

Что такое индекс?

Вопрос 2

Какой индекс автоматически создаётся для первичного ключа?

Вопрос 3

Что делает UNIQUE INDEX?

Вопрос 4

Когда обычный INDEX особенно полезен?

Вопрос 5

Какой командой посмотреть план выполнения в MySQL?

Вопрос 6

Какой минус есть у индексов?

Вопрос 7

Для чего нужен составной индекс?