Встречается на собеседованиях • сегодня

Что такое грязное чтение в транзакциях

Грязное чтение (Dirty Read) — это ситуация, когда одна транзакция читает данные, которые были изменены другой транзакцией, но еще не зафиксированы. Если вторая транзакция откатится, первая получит некорректные данные.

Пример:

java
// Транзакция 1 (изменяет данные)
connection.setAutoCommit(false);
stmt.executeUpdate("UPDATE accounts SET balance = 1000 WHERE id = 1");

// Транзакция 2 (читает незафиксированные данные)
connection2.setAutoCommit(false);
ResultSet rs = stmt2.executeQuery("SELECT balance FROM accounts WHERE id = 1"); // balance = 1000

// Транзакция 1 откатывается
connection.rollback();

// Транзакция 2 работает с "грязными" данными

text

Уровни изоляции, предотвращающие Dirty Read:
- READ_COMMITTED (минимальный уровень)
- REPEATABLE_READ
- SERIALIZABLE
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы