Що таке кластерний індекс (clustered index)?
Кластерний індекс (clustered index) - це тип індексу, який визначає фізичний порядок зберігання рядків у таблиці.
Тобто дані в самій таблиці зберігаються в порядку значень ключа кластерного індексу. Фактично таблиця стає самим індексом.
Принцип
- У кожної таблиці може бути лише один кластерний індекс, бо рядки можна впорядкувати фізично лише за одним полем.
- Решта індексів будуть некластерними (вони просто зберігають посилання на дані).
Приклад (SQL Server / MySQL InnoDB)
sql
CREATE CLUSTERED INDEX idx_employees_id
ON employees(id);Тепер рядки в таблиці employees зберігатимуться в порядку id.
Особливості
- Швидкий пошук за діапазоном (
BETWEEN,>,<) - дані лежать підряд. - Швидкий
ORDER BYза цим полем - сортування вже готове. - Повільніша вставка в середину діапазону - потрібно «вставити» рядок у відсортоване місце.
У InnoDB (MySQL) кластерним індексом завжди є PRIMARY KEY -
якщо його немає, система створює його автоматично за внутрішнім ідентифікатором.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.