Що таке некластерний індекс (non-clustered index)?
Некластерний індекс (non-clustered index) - це окрема структура, яка зберігається поза основною таблицею й містить:
- відсортовані ключі (за якими будується індекс),
- вказівники (посилання) на реальні рядки в таблиці.
Принцип
- Дані в таблиці лишаються у своєму порядку,
- Некластерний індекс створює «картку-вказівник» - як окремий зміст, що знає, де лежить кожен рядок.
Приклад
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
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.