Вопрос проверяет понимание того, как индексы ускоряют чтение данных и какие компромиссы при этом возникают.
Индексы позволяют базе быстро находить нужные строки без полного сканирования таблицы. Они особенно эффективны для WHERE, JOIN, ORDER BY. За счёт этого SELECT выполняется значительно быстрее. Но индексы полезны только если используются планировщиком.
Индекс — это вспомогательная структура данных, ускоряющая поиск строк по заданному условию.
SELECTПеред деталями важно понимать принцип:
индекс уменьшает количество строк, которые нужно прочитать.
Быстрый поиск
Вместо полного скана — обращение к индексу
Сокращение I/O
Читаются только нужные страницы
Ускорение сортировок
ORDER BY может использовать индекс
Ускорение JOIN
По ключам соединения
CREATE INDEX idx_users_email ON users(email);
SELECT * FROM users WHERE email = 'test@example.com';
Маленькая таблица
Низкая селективность
Выражения над колонкой
Несоответствие порядку полей
Индексы — ключевой инструмент ускорения SELECT, но они эффективны только при правильном использовании и подходящих запросах.