Что является основной единицей хранения информации в индексе базы данных?

«Что является основной единицей хранения информации в индексе базы данных?» — вопрос из категории Базы данных, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В контексте индексов баз данных базовой логической единицей хранения информации является страница (page) или блок (block).

  • Страница — это фиксированный по размеру блок данных (например, 8 КБ, 16 КБ), который является минимальной единицей ввода-вывода для движка базы данных. Индексные структуры, такие как B-дерево, организованы именно в виде страниц.
  • Каждая страница содержит множество записей индекса (index entries). Каждая запись обычно состоит из ключевого значения (или значений) и указателя на соответствующую строку данных (например, RID — Row Identifier).

Поэтому, когда говорят о размере индекса, часто имеют в виду количество занимаемых им страниц на диске.

Пример запроса для оценки размера индекса в PostgreSQL:

-- Показать размер индекса 'idx_user_email' в удобочитаемом формате
SELECT pg_size_pretty(pg_relation_size('idx_user_email')) AS index_size;

Этот запрос возвращает размер индекса в байтах, килобайтах, мегабайтах и т.д., что напрямую связано с количеством занятых страниц.