Ответ
Индексы в базах данных ускоряют операции чтения, но замедляют операции записи, так как индексные структуры (например, B-деревья) требуют поддержки в актуальном состоянии.
Индексы ускоряют следующие операции:
-
Фильтрация (
WHERE): Быстрый поиск строк по значению колонки.SELECT * FROM users WHERE email = 'user@example.com'; -- Использует индекс по `email` -
Соединения (
JOIN): Ускорение поиска совпадающих строк в связанных таблицах.SELECT * FROM orders JOIN customers ON orders.customer_id = customers.id; -- Индекс на `customer_id` и `customers.id` -
Сортировка (
ORDER BY): Позволяет избежать дорогостоящей операции внешней сортировки (filesort), если порядок соответствует индексу.SELECT * FROM products ORDER BY created_at DESC; -- Использует индекс по `created_at` -
Группировка (
GROUP BY): Эффективная агрегация данных.SELECT department_id, COUNT(*) FROM employees GROUP BY department_id; -- Индекс на `department_id` -
Агрегатные функции (
MIN,MAX): Для нахождения крайних значений индекс может быть использован для прямого доступа к первому/последнему элементу.SELECT MIN(price) FROM products; -- Индекс по `price` позволяет быстро найти минимальное значение
Важно: Индексы замедляют INSERT, UPDATE и DELETE, так как каждое изменение данных требует соответствующего обновления всех связанных индексов.