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

Какие знаешь аномалии в БД

Грязное чтение (Dirty Read) – чтение незафиксированных изменений транзакции, которая может быть откачена.

sql
-- Транзакция 1: UPDATE users SET balance = 100 WHERE id = 1; (не зафиксировано)
-- Транзакция 2: SELECT balance FROM users WHERE id = 1; → 100 (грязное чтение)

Неповторяющееся чтение (Non-repeatable Read) – разные результаты при повторном чтении в одной транзакции из-за изменений другой.

sql
-- Транзакция 1: SELECT balance FROM users WHERE id = 1; → 50
-- Транзакция 2: UPDATE users SET balance = 100 WHERE id = 1; COMMIT;
-- Транзакция 1: SELECT balance FROM users WHERE id = 1; → 100 (изменилось)

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

sql
-- Транзакция 1: SELECT * FROM users WHERE age > 20; → 2 записи
-- Транзакция 2: INSERT INTO users (age) VALUES (25); COMMIT;
-- Транзакция 1: SELECT * FROM users WHERE age > 20; → 3 записи (фантом)

Потерянное обновление (Lost Update) – два изменения конкурируют, одно перезаписывает другое без учета предыдущего.

Уровни изоляции (READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE) решают эти проблемы с разным балансом производительности и строгости.

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

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

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

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