Назад к вопросам
Альфа-Банк
Senior
8
Что происходит с удаленными строками в PostgreSQL?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В PostgreSQL удалённые строки не удаляются физически сразу после операции DELETE или обновления (UPDATE). Вместо этого они становятся «мертвыми» (dead tuples) и остаются в таблице до выполнения операции VACUUM.
Это связано с механизмом MVCC (многоверсионного контроля конкуренции), который позволяет транзакциям видеть консистентное состояние данных без блокировок.
Что происходит:
- При удалении или обновлении создаётся новая версия строки, а старая помечается как удалённая, но физически остаётся в таблице.
- Эти «мертвые» строки занимают место и могут замедлять работу.
- Команда VACUUM очищает такие строки, освобождая пространство для повторного использования.
Таким образом, удалённые строки в PostgreSQL — это не сразу физически удалённые данные, а помеченные для удаления версии, которые будут очищены позже в процессе обслуживания базы.