Как Postgres поддерживает откат без журналов отмены - PullRequest
0 голосов
/ 09 июля 2019

Я просматривал эту ссылку , и упоминается, что PostgreSQL не поддерживает журнал отмен.Поэтому мне интересно, как PostgreSQL откатывает транзакцию без журнала отмен.

1 Ответ

2 голосов
/ 09 июля 2019

Когда строка обновляется или удаляется в PostgreSQL, она на самом деле не обновляется и не удаляется.Старая версия строки просто остается в таблице и помечается как удаленная определенной транзакцией.Это делает обновление очень похожим на удаление старой версии и вставку новой версии строки.

Откат транзакции - это всего лишь пометка транзакции как прерванной.Затем старая версия строки автоматически снова становится текущей версией строки, без необходимости что-либо отменять.

Ахиллесова пята этого метода заключается в том, что при модификации данных создаются «версии мертвых строк», которые необходимо восстановить позже.с помощью фоновой процедуры, называемой «вакуумирование».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...