Skip to content

Транзакции

Транзакция - это набор команд к бд, которые выполняются атомарно. Либо все выполнены, либо не выполнены.

Свойства транзакционной бд - ACID.

  • A - Atomicity. Атомарность. Все операции либо выполняются, либо нет.
  • C - Consistency. Согласованность. Транзакции переводит бд из одного согласованного состояния в другое. С учетом того, что они корректно написаны в логике приложения?
  • I - Isolation. Изолированность. Транзакции изолированы друг от друга. Изменения одной не влияют на другую. Уровни изоляции транзакций.
  • D - Durability. Долговечность. После завершения транзакции изменения гарантированно будут применены.

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

  • Serializable - выполняются по порядку друг за другом
  • Read Committed
  • Read Uncommitted
  • Repeatable Read / Snapshot - в процессе выполнения транзакции данные всегда используются те же, что и в начале транзакции
  • Linearizable
  • Write Committed

MVCC - multiversion concurrency control. Позволяет нескольким транзакциям работать с данными без конфликтов.

Блокировки строк, таблиц