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

Приведи пример аномалии в БД

Фантомное чтение (Phantom Read) — ситуация, когда одна транзакция повторно читает данные, а другая добавляет или удаляет строки, которые попадают в условие первой.

Пример:

java
// Транзакция 1
try (Connection conn = dataSource.getConnection()) {
    conn.setAutoCommit(false);
    // Первое чтение (10 записей)
    ResultSet rs1 = conn.createStatement().executeQuery("SELECT * FROM users WHERE age > 18");
    // Транзакция 2 добавляет новую запись с age = 20
    // Второе чтение (уже 11 записей)
    ResultSet rs2 = conn.createStatement().executeQuery("SELECT * FROM users WHERE age > 18");
    // Количество строк изменилось — фантом!
}

Решение: Использовать SERIALIZABLE уровень изоляции или блокировки (SELECT ... FOR UPDATE).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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