Понимание и восстановление хра... Заметка

Понимание и восстановление хранилища после удаления в Azure Database for PostgreSQL

Многоверсионное управление параллельным доступом (MVCC) в PostgreSQL позволяет читателям и писателям работать одновременно без блокировок. При удалении строк PostgreSQL помечает их как "мертвые кортежи", а не физически удаляет с диска. Это обеспечивает согласованность данных для текущих транзакций, но размер файла таблицы остается неизменным. Следовательно, графики использования хранилища в Azure Monitor будут продолжать показывать высокое потребление, несмотря на уменьшение количества логических строк. Старые версии строк, созданные при обновлениях, также занимают место до тех пор, пока они не потребуются активным транзакциям. Мертвые кортежи, являющиеся устаревшими версиями строк, могут накапливаться и требовать очистки посредством операций VACUUM. Раздувание таблиц и индексов может происходить из-за частых модификаций данных. Стандартный VACUUM восстанавливает внутреннее пространство для повторного использования, но не уменьшает файлы таблиц. VACUUM FULL переписывает таблицы в компактные файлы, физически уменьшая их, но требует эксклюзивных блокировок. pg_repack предлагает менее блокирующую альтернативу для уплотнения таблиц и индексов. Секционирование является проактивным подходом к управлению историческими данными путем удаления целых секций вместо отдельных строк. Неиспользуемое пространство из временных файлов автоматически освобождается после завершения запросов. Azure Database for PostgreSQL Flexible Server позволяет увеличивать объем хранилища, но не уменьшать его. Стоимость хранилища рассчитывается на основе выделенной емкости, поэтому удаление данных не снижает счета автоматически. Рекомендуемые практики включают пакетное удаление, мониторинг ключевых метрик, использование секционирования и проактивное планирование емкости хранилища.