[Исходный код Spring6・Транзакция] Анализ исходного кода ядра транзакции

связанный с бизнесом

Перед этим небольшой обзор:

Четыре характеристики транзакций:

  • Атомарность: транзакции неделимы, выполняются либо все, либо ни одна.
  • Непротиворечивость: до и после выполнения транзакции целостность данных остается неизменной, то есть общий объем данных до и после модификации примерно одинаков.
  • Изоляция: во время выполнения транзакции другие транзакции не будут мешать ей.
  • Долговечность: после завершения транзакции воздействие на базу данных становится постоянным. Данные сохраняются в базе данных.

Общие проблемы транзакций в параллельных сценариях:

  • Грязное чтение: когда транзакция A читает незафиксированные данные транзакции B, транзакция B выполняет откат, в результате чего данные, прочитанные транзакцией A, становятся грязными.
  • Неповторяющееся чтение: после того, как транзакция A читает данные в первый раз, транзакция B изменяет и отправляет данные.

рекомендация

отblog.csdn.net/CSDN_SAVIOR/article/details/128902001