LINUX.ORG.RU

История изменений

Исправление vbr, (текущая версия) :

Смысл всего этого в том, чтобы rollback работал, для этого надо сохранять старую копию удалённой строки. Но когда транзакция закоммичена, то со старой копией уже ничего не сделать, максимум - пометить её, как неиспользуемое место. По сути эта структура оптимизирована для быстрого rollback.

Оракл использует undo log. Т.е. когда ты пишешь update, он записывает старую копию в undo log, а новые данные пишет поверх, ну, если грубо. Если нужно сделать rollback, то он читает undo log в обратном порядке и переносит данные из него в таблицу, возвращая исходное состояние. Когда транзакция закоммичена, то undo log удаляется. Тут rollback большой транзакции будет медленным. MySQL InnoDB вроде так же работает.

Т.е. поправить в теории можно…

Исходная версия vbr, :

Смысл всего этого в том, чтобы rollback работал, для этого надо сохранять старую копию удалённой строки. Но когда транзакция закоммичена, то со старой копией уже ничего не сделать, максимум - пометить её, как неиспользуемое место. По сути эта структура оптимизирована для быстрого rollback.

Оракл использует undo log. Т.е. когда ты пишешь update, он записывает старую копию в undo log, а новые данные пишет поверх, ну, если грубо. Если нужно сделать rollback, то он читает undo log в обратном порядке и переносит данные из него в таблицу, возвращая исходное состояние. Когда транзакция закоммичена, то undo log удаляется. Тут rollback большой транзакции будет медленным.

Т.е. поправить в теории можно…