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

Что такое изоляция транзакции

Изоляция транзакции определяет, насколько изменения одной транзакции видны другим параллельным транзакциям. В SQL стандарте есть 4 уровня изоляции:

  1. Read Uncommitted - самая слабая изоляция, транзакции видят даже незафиксированные изменения других транзакций (грязное чтение).

  2. Read Committed - транзакция видит только зафиксированные изменения других транзакций (по умолчанию в PostgreSQL).

  1. Repeatable Read - гарантирует, что данные, прочитанные в транзакции, не изменятся другими транзакциями (в PostgreSQL также предотвращает фантомное чтение).

  2. Serializable - самый строгий уровень, транзакции выполняются так, как будто они выполняются последовательно.

Пример настройки уровня изоляции в SQLAlchemy:

python
from sqlalchemy import create_engine

engine = create_engine("postgresql://user:pass@localhost/db", 
                       isolation_level="REPEATABLE READ")

Проблемы при слабой изоляции: грязное чтение, неповторяемое чтение, фантомное чтение.

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

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

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

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