2.7 KiB
2.7 KiB
aliases | tags | date | zero-link | parents | linked | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
Транзакция - способ группировки приложением нескольких операций в одну логическую единицу, которая либо выполняется вся, либо не выполняется вовсе (прерывание и откат).
Для реализации обычно используется Журнал БД. Обычно у транзакции есть идентификатор.
Обычно работает с использованием блокировок.
Почему не используют транзакции:
- Снижение скорости работы приложения
- Риски Deadlock
- Нет поддержки на уровне СУБД
- Не знают механизм / не понимают принципы работы
Как происходит commit транзакции:
- Подготовка транзакции в движке БД
- Запись транзакции в лог
- Завершение транзакции в движке БД
- Возврат результата клиенту
Проблемы при параллельном выполнении нескольких транзакций:
Уровни изоляций транзакций БД:
Дополнительные советы:
- Разделить потоки чтения и записи: CQRS