Skip to main content

Що таке некластерний індекс (non-clustered index)?

Некластерний індекс (non-clustered index) - це окрема структура, яка зберігається поза основною таблицею й містить:

  1. відсортовані ключі (за якими будується індекс),
  2. вказівники (посилання) на реальні рядки в таблиці.

Принцип

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

Приклад

sql
CREATE NONCLUSTERED INDEX idx_users_email ON users(email);

Тепер база створює структуру з відсортованими email і посиланнями на реальні рядки. Коли виконується запит

sql
SELECT * FROM users WHERE email = 'a@mail.com';

SQL спочатку шукає email в індексі, потім за посиланням переходить до рядка в таблиці (це називається lookup).

Особливості

  • Можна створювати багато некластерних індексів на одну таблицю.
  • Вони прискорюють вибірку (SELECT, WHERE, JOIN, ORDER BY).
  • Але при вставці/оновленні рядка потрібно оновлювати всі індекси, де бере участь змінене поле.

Відмінність від кластерного індексу

  • Кластерний - задає фізичний порядок рядків у таблиці.
  • Некластерний - це «вказівник» на дані, що зберігається окремо.

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

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

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