Индекс хранит дополнительную структуру для ускорения подходящих обращений. В PostgreSQL выбор типа и колонок зависит от запросов, а каждый индекс имеет цену записи и хранения.
Расскажите про индексы в базах данных, в частности PostgreSQL.
Индекс хранит дополнительную структуру для ускорения подходящих обращений. В PostgreSQL выбор типа и колонок зависит от запросов, а каждый индекс имеет цену записи и хранения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Индекс хранит дополнительную структуру для ускорения подходящих обращений. В PostgreSQL выбор типа и колонок зависит от запросов, а каждый индекс имеет цену записи и хранения.
B-tree подходит для многих равенств, диапазонов и сортировок; GIN — для определённых многозначных данных, BRIN — для больших таблиц с корреляцией физического порядка. Важны порядок колонок, частичные условия и выражения. Индекс не гарантирует ускорение любого запроса: планировщик сравнивает стоимость, а результат проверяют по фактическому плану и нагрузке.