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

Что такое уровень изолированности транзакции в БД

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

  1. Read Uncommitted - транзакция видит незафиксированные изменения других транзакций (грязное чтение)
  2. Read Committed - видны только зафиксированные изменения (по умолчанию в PostgreSQL)
  3. Repeatable Read - гарантирует, что данные, прочитанные в транзакции, не изменятся (в PostgreSQL предотвращает фантомное чтение)
  4. Serializable - самый строгий, транзакции выполняются так, будто они идут последовательно

Пример в SQLAlchemy:

python
from sqlalchemy import create_engine
engine = create_engine("postgresql://user:pass@host/db")
with engine.connect().execution_options(isolation_level="REPEATABLE READ") as conn:
    conn.execute("UPDATE accounts SET balance = balance - 100 WHERE id = 1")
    conn.commit()
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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