Что гарантируют уровни изоляций транзакции
Уровни изоляции транзакций гарантируют определенное поведение при параллельном выполнении транзакций:
-
READ_UNCOMMITTED - Минимальная изоляция. Возможны "грязные" чтения (чтение незафиксированных данных других транзакций).
-
READ_COMMITTED - Гарантирует, что будут читаться только зафиксированные данные. Исключает "грязные" чтения, но возможны неповторяющиеся чтения (другая транзакция может изменить данные между повторными чтениями).
-
REPEATABLE_READ - Гарантирует, что данные, прочитанные в рамках транзакции, не изменятся другими транзакциями до её завершения. Исключает неповторяющиеся чтения, но возможны фантомные чтения (появление новых строк).
-
SERIALIZABLE - Максимальная изоляция. Гарантирует полную изоляцию, как если бы транзакции выполнялись последовательно.
Пример настройки в Spring:
@Transactional(isolation = Isolation.READ_COMMITTED)
public void transferMoney() {
// логика перевода
}
офферы быстрее!
Следующий вопрос
Это единственный вопрос по вашему фильтру