Встречается на собеседованиях • сегодня
Что будет, если прочитать незакоммиченные данные
При чтении незакоммиченных данных поведение зависит от уровня изоляции транзакции:
-
READ_UNCOMMITTED - можно прочитать "грязные" данные (Dirty Read) из другой незавершенной транзакции. Это самый низкий уровень изоляции.
-
READ_COMMITTED и выше - система не позволит увидеть незакоммиченные изменения других транзакций. Будет возвращено либо старое значение, либо запрос будет ждать завершения транзакции (в зависимости от реализации).
Пример с READ_UNCOMMITTED:
java
// Транзакция 1
connection.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
// Обновляет данные, но не коммитит
statement.executeUpdate("UPDATE accounts SET balance = 100 WHERE id = 1");
// Транзакция 2 (параллельно)
connection.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
// Может прочитать незакоммиченное значение 100
ResultSet rs = statement.executeQuery("SELECT balance FROM accounts WHERE id = 1");READ_UNCOMMITTED редко используется из-за риска несогласованных данных. В большинстве случаев лучше использовать более строгие уровни изоляции.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы