Разбираем типичные ошибки при работе с индексами. Неправильное использование может замедлить базу данных вместо ускорения.
Каждый индекс замедляет
INSERT/UPDATE операции:CREATE INDEX idx_user_name ON users(name);
CREATE INDEX idx_user_email ON users(email);
CREATE INDEX idx_user_phone ON users(phone);
CREATE INDEX idx_user_city ON users(city);
При каждой вставке СУБД обновляет все 4 индекса, что сильно замедляет запись.
Функции делают индексы бесполезными:
SELECT * FROM orders WHERE YEAR(order_date) = 2024;
-- Индекс на order_date не используется
Правильно без функций:
SELECT * FROM orders WHERE order_date >= '2024-01-01' AND order_date < '2025-01-01';
Порядок столбцов критичен:
CREATE INDEX idx_user_city_age ON users(city, age);
Работает для поиска по
city или city+age, но бесполезен для поиска только по age.🔥 Поэтому используйте
EXPLAIN для проверки, что индексы действительно работают!➡️ SQL Ready | #практика