Что такое кластерный индекс?

Индексы бывают разных типов. По способу хранения данных отличают кластерные и обычные индексы.

Обычно индекс — это отсортированный набор данных колонки, по которой он построен. Например для таблицы:

| id | name  |
| 1  | Den   |
| 3  | Lenin |
| 2  | Thor  |

Индекс по колонке ID будет выглядеть так:

| id |
| 1  | -> 1 строка
| 2  | -> 3 строка
| 3  | -> 2 строка

Индекс будет хранить ссылки на данные каждой строки для каждого значения ID.

Кластерный индекс (или кластерный ключ) сохраняет не только значения колонки в отсортированном виде, а и данные всей строки:

| id | name  |
| 1  | Den   |
| 2  | Thor  |
| 3  | Lenin |

Это позволяет минимизировать количество операций чтения с диска при работе с таким индексом. В таблице может быть только один кластерный индекс.

Mysql поддерживает кластерные индексы для движка Innodb. Первичный ключ таблицы будет кластерным.

Подпишитесь на Хайлоад с помощью Google аккаунта
или закройте эту хрень