История изменений
Исправление 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 большой транзакции будет медленным.
Т.е. поправить в теории можно…