GIN хранит множество ключей на одну строку. Рост данных, частые обновления, pending list при fastupdate и несвоевременная очистка увеличивают размер индекса.
Почему могут разрастаться GIN-индексы?
GIN хранит множество ключей на одну строку. Рост данных, частые обновления, pending list при fastupdate и несвоевременная очистка увеличивают размер индекса.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
GIN хранит множество ключей на одну строку. Рост данных, частые обновления, pending list при fastupdate и несвоевременная очистка увеличивают размер индекса.
Для JSONB, массивов и полнотекстового поиска одна запись порождает много индексных элементов. При fastupdate новые записи сначала накапливаются в pending list; его очистка переносит данные в основную структуру. Дополнительно остаются следы удалённых версий и свободные страницы для повторного использования. Сравнивают размер таблицы и индекса, темп изменений, работу autovacuum и pending list. Большой файл сам по себе не доказывает bloat: очистка не обязана уменьшать его физический размер. Перестроение рассматривают после измерений и оценки нагрузки.
Источник: www.postgresql.org.