MySQL індекси: типи, створення та оптимізація запитів

MySQL / MariaDB · 19.04.2026
MySQL індекси: типи, створення та оптимізація запитів

Що таке індекси в MySQL

Індекс — окрема структура даних, яка прискорює пошук по таблиці. Без індексу MySQL робить повний перебір рядків. З правильним індексом — O(log n) замість O(n).

Типи індексів

ТипОпис
PRIMARY KEYУнікальний, не NULL, один на таблицю
UNIQUEЗабороняє дублікати
INDEX / KEYЗвичайний неунікальний індекс
FULLTEXTПовнотекстовий пошук

Створення індексів

ALTER TABLE orders ADD INDEX idx_status (status);
ALTER TABLE users ADD UNIQUE INDEX idx_email (email);
CREATE INDEX idx_user_status ON orders(user_id, status);

Аналіз запиту через EXPLAIN

EXPLAIN SELECT * FROM orders WHERE user_id = 5 AND status = 'pending'\G
Не додавайте індекси на всі стовпці — кожен індекс уповільнює INSERT/UPDATE/DELETE.
← Назад до бази знань Поставити питання підтримці