Skip to main content

Що таке кластерний індекс (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

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