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

В чем разница между кластерных и некластерных индексов в PostgreSQL

Основное отличие между кластерными (clustered) и некластерными (non-clustered) индексами в PostgreSQL:

  1. Кластерный индекс (CLUSTER command) физически переупорядочивает таблицу согласно индексу. В PostgreSQL нет встроенных кластерных индексов как в других СУБД, но можно использовать команду CLUSTER для однократной реорганизации данных. После этого новые данные не будут автоматически упорядочиваться.
  1. Некластерный индекс (обычные индексы) создают отдельную структуру данных, которая ссылается на строки таблицы. Это стандартный тип индексов в PostgreSQL (B-tree, GIN, GiST и др.).

Пример кластеризации:

sql
-- Создаем индекс
CREATE INDEX idx_users_name ON users(name);

-- Кластеризуем таблицу по индексу (однократно)
CLUSTER users USING idx_users_name;

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

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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