Введение
Транзакции повсеместно применяются в современных enterprise системах, обеспечивая целостность данных даже в многопоточных средах. Так давайте начнем сначала с опеределения термина и контекста, в которым обычно применяются транзакции.
Транзакции — это группа операций на чтение/запись, выполняющихся только если все операции из группы успешно выполнены.
По сути транзакции характеризуются следующими четырьмя свойствами (также известными как ACID):
- Атомарность
- Консистентность
- Изоляция
- Долговечность
В реляционной БД каждое SQL выражение должно исполняться в пределах транзакции. Без явного определения границ транзакции БД будет использовать неявную транзакцию, которая покрывает каждое SQL выражение. Неявная транзакция начинается до того как выражение запустится и заканчивается (коммит или откат) после того как выражение выполнится.
Режим неявной транзакции известен так же как режим autocommit.
Для enterprise систем режим автокоммита следует избегать из-за серьезных проблем с производительностью, и данный режим не позволит включать группу множественных DML в единую атомарную «единицу работы».
Это очень важно понимать и далее мы обсудим каждое из свойств.