digital-garden/_inbox/Транзакция БД.md

2.7 KiB
Raw Blame History

aliases tags date zero-link parents linked
транзакция
транзакции
зрелость/🌱
2024-05-28
00 Базы Данных

Транзакция - способ группировки приложением нескольких операций в одну логическую единицу, которая либо выполняется вся, либо не выполняется вовсе (прерывание и откат).

Для реализации обычно используется Журнал БД. Обычно у транзакции есть идентификатор.

Обычно работает с использованием блокировок.

Почему не используют транзакции:

  • Снижение скорости работы приложения
  • Риски Deadlock
  • Нет поддержки на уровне СУБД
  • Не знают механизм / не понимают принципы работы

Как происходит commit транзакции:

  • Подготовка транзакции в движке БД
  • Запись транзакции в лог
  • Завершение транзакции в движке БД
  • Возврат результата клиенту

Свойства транзакций БД: Свойства транзакции БД (ACID)

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

Уровни изоляций транзакций БД: Уровни изоляций транзакций БД

Дополнительные советы:

  • Разделить потоки чтения и записи: CQRS

Дополнительные материалы