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

Всегда ли будет запрещен доступ к данным, прочитанным в другой транзакции

Нет, доступ к данным, прочитанным в другой транзакции, не всегда запрещен. Это зависит от уровня изоляции транзакции:

  1. READ_UNCOMMITTED - разрешает "грязное чтение" (dirty read), можно видеть незафиксированные изменения других транзакций
  2. READ_COMMITTED (по умолчанию в большинстве СУБД) - запрещает dirty read, но разрешает non-repeatable read
  3. REPEATABLE_READ - гарантирует, что повторное чтение вернет те же данные
  4. SERIALIZABLE - полная изоляция, как будто транзакции выполняются последовательно

Пример:

java
// Установка уровня изоляции
connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);

Также доступ может зависеть от блокировок (SELECT FOR UPDATE) и стратегии управления версиями (MVCC).

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

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

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

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