Skip to main content

Що таке покривний індекс (covering index)?

Покривний індекс (covering index) - це індекс, який містить усі дані, потрібні для виконання запиту, тому база може отримати результат лише з індексу, не звертаючись до самої таблиці.

Принцип

Зазвичай індекс зберігає ключі + посилання на рядок таблиці. Але якщо запит використовує лише ті стовпці, які вже є в індексі - СУБД може взяти все прямо з індексу, без «lookup» до таблиці. Це сильно прискорює SELECT.

Приклад

sql
CREATE INDEX idx_orders_customer_amount ON orders(customer_id, amount);

Тепер запит

sql
SELECT customer_id, amount FROM orders WHERE customer_id = 5;

працюватиме лише за індексом - він уже «покриває» всі потрібні поля.

Особливості

  • Прискорює SELECT, бо виключає звернення до таблиці.

  • Ефективний для часто використовуваних фільтрів і вибірок.

  • У деяких СУБД (наприклад, MySQL) можна явно додати додаткові поля до індексу:

    sql
    CREATE INDEX idx_orders_customer ON orders(customer_id) INCLUDE(amount);

Тут amount не бере участі в сортуванні, але зберігається в індексі, щоб покривати запити.

Суть

Покривний індекс = «усе потрібне вже всередині індексу» -> запит виконується швидше, без зайвого читання таблиці.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.