Задать вопрос
@yourisus

Почему незафиксированная транзакция может изменять данные?

17d22f2acb1d4dfd835b6b8d7b7967b9.png
Собственно вопрос - почему транзакция, которая не завершена(commit), способна менять данные в кеше, а не создавать копию обьекта или хотя бы копию измененной части.
Вот у нас есть ситуация как на скрине:
1) Почему нельзя проверить действия на целостность и корректность, а потом после утверждения(commit) изменить данные? Создать локальную А, записать в нее, после утверждения, записать в ту, что в кеше, тем самым исчезнет, проблема "грязных данных".
2) Каким образом, после всех действий даже после перезаписи А, мы получили rollback?(как я понимаю, если А перезаписано, то бд как бы фактически проверила на целостность и тп.)
3) Расскажите, кто отдает конечное "зафиксировать\откатить"?
Ну или укажите на ошибки, может я чего-то не догнал...
  • Вопрос задан
  • 186 просмотров
Подписаться 2 Оценить 6 комментариев
Ответ пользователя bnytiki К ответам на вопрос (3)
@bnytiki
Далеко не всегда важны "чистые" данные, бывает, что важнее скорость.

Вот два примера:

Например, какая вам принципиальная разница - будет на 1 лайк больше или нет?
С другой стороны, при банковских операциях мелочи важны.

Чем "чище" тем выше нагрузка на СУБД.
Поэтому иногда ОСОЗНАНО снижают "чистоту".
Ответ написан
Комментировать