Встречается на собеседованиях • сегодня

Почему не использовал кластерный индекс

Кластерный индекс (primary key) автоматически создаётся в большинстве СУБД при объявлении PRIMARY KEY. Вопрос скорее о его отсутствии или сознательном отказе.

Основные причины не использовать кластерный индекс:

  1. Частые вставки/обновления - перестроение индекса дорого
  2. Большой размер ключа - ведёт к увеличению всех вторичных индексов
  3. Неоптимальные запросы - если доступ чаще идёт по другим полям

Пример, где UUID первичный ключ может быть хуже автоинкремента:

sql
-- Плохо для кластеризации из-за случайности UUID
CREATE TABLE orders (
   id UUID PRIMARY KEY,  -- Фрагментация страниц
   user_id INT,
   INDEX (user_id)
);

Лучше использовать суррогатный ключ и отдельный индекс:

sql
CREATE TABLE orders (
   id INT AUTO_INCREMENT PRIMARY KEY,
   user_id INT,
   uuid UUID UNIQUE,
   INDEX (user_id)
);
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы