Senior
56
Mi történik a törölt sorokkal a PostgreSQL-ben?
Cégeket kérdeztek
Válasz az MI-től
sobes.tech MI
В PostgreSQL удалённые строки не удаляются физически сразу после операции DELETE или обновления (UPDATE). Вместо этого они становятся «мертвыми» (dead tuples) и остаются в таблице до выполнения операции VACUUM.
Это связано с механизмом MVCC (многоверсионного контроля конкуренции), который позволяет транзакциям видеть консистентное состояние данных без блокировок.
Что происходит:
- При удалении или обновлении создаётся новая версия строки, а старая помечается как удалённая, но физически остаётся в таблице.
- Эти «мертвые» строки занимают место и могут замедлять работу.
- Команда VACUUM очищает такие строки, освобождая пространство для повторного использования.
Таким образом, удалённые строки в PostgreSQL — это не сразу физически удалённые данные, а помеченные для удаления версии, которые будут очищены позже в процессе обслуживания базы.