Встречается на собеседованиях • сегодня
Почему выбрал бы Repeatable Read для таблицы пользователей, где каждый пользователь может изменять только свою строку
Repeatable Read обеспечивает консистентность данных при чтении, предотвращая "фантомные чтения". В сценарии, где пользователи изменяют только свои строки, конкурентные транзакции не будут мешать друг другу, так как блокируются только изменяемые строки.
Пример:
java
// Транзакция 1 (пользователь 1)
connection.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
// SELECT balance FROM users WHERE id = 1 → 100
// UPDATE users SET balance = 90 WHERE id = 1
// Транзакция 2 (пользователь 2)
connection.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
// SELECT balance FROM users WHERE id = 2 → 200
// UPDATE users SET balance = 180 WHERE id = 2
text
Преимущества:
- Гарантирует, что повторные чтения одной строки вернут одинаковые значения
- Не блокирует всю таблицу, только конкретные строки
- Подходит для read-modify-write операций в пределах одной записи
Недостатки:
- Может привести к deadlock'ам при неправильном порядке обновлений
- Не защищает от фантомных чтений (но в данном сценарии это не проблема)
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы