pgcompacttable
Реорганизации данных в таблицах и перестройка индексов.
Связанные компоненты: модуль написан на языке Perl, поэтому для работы требует библиотеки Perl DBI с модулем поддержки PostgreSQL:
- perl-Time-HiRes;
- perl-DBI;
- perl-DBD-Pg;
- pgstattuple.
Утилита pgcompacttable - это инструмент для уменьшения размера «раздутых» таблиц и индексов без тяжелых блокировок.
Модуль предназначен для реорганизации данных в таблицах и перестроения индексов для того, чтобы освободить место на диске без ущерба для производительности базы данных.
Модуль может быть запущен от имени любого пользователя ОС, в том числе на другом хосте (вариант с ключом
--host
).В процессе работы с Pangolin SE возникает table bloat — ситуация, при которой данные таблиц будут храниться неэффективно. Они фрагментируются, что приводит к ухудшению производительности и нерациональному использованию места на диске.
Основные причины фрагментации:
- непредвиденный скачок запросов
UPDATE
илиDELETE
; - долгие транзакции, препятствующие удалению старых версий записей (VACUUM не может удалить запись, если есть хотя бы одна незакрытая транзакция старше запроса, удалившего или изменившего эту запись);
- долгие транзакции, препятствующие удалению старых версий записей (
VACUUM
не может удалить запись, если есть хотя бы одна незакрытая транзакция старше запроса, удалившего или изменившего эту запись); - незавершенные
PREPARED
транзакции; - накопление остатков удаленных записей большого размера при работе с типами данных переменной длины.
Дополнительную информацию по поставляемому модулю pgcompacttable можно получить по ссылке.