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

Как устроен индекс по двум полям в PostgreSQL

Индекс по двум полям в PostgreSQL (составной индекс) создаётся для ускорения запросов, которые фильтруют или сортируют по обоим полям. Он хранит значения обоих полей в одной структуре (обычно B-дереве), упорядоченные сначала по первому полю, затем по второму.

Пример создания:

sql
CREATE INDEX idx_name ON table_name (column1, column2);

Особенности:

  1. Индекс эффективен для запросов с условиями на оба поля или только на первый:
sql
-- Использует индекс
SELECT * FROM table_name WHERE column1 = 'A' AND column2 = 'B';
SELECT * FROM table_name WHERE column1 = 'A';

-- Не использует индекс (если нет отдельного индекса на column2)
SELECT * FROM table_name WHERE column2 = 'B';
  1. Порядок столбцов важен - индекс не будет работать для условий только на второй столбец.

  2. Поддерживает различные операторы сравнения и может использоваться для сортировки.

  3. Для полнотекстового поиска или специальных типов данных используются другие типы индексов (GIN, GiST).

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

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

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

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