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

Как работают уровни изоляции в PostgreSQL

Уровни изоляции в PostgreSQL определяют, как транзакции видят изменения друг друга. PostgreSQL поддерживает 4 уровня (от самого строгого к самому слабому):

  1. Serializable – Гарантирует полную изоляцию, как будто транзакции выполняются последовательно. Самый строгий, но может приводить к ошибкам Serialization Failure.
  1. Repeatable Read – Гарантирует, что данные, прочитанные в транзакции, не изменятся. Но возможен фантомный чтение (новые строки могут появиться).

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

  3. Read Uncommitted – В PostgreSQL фактически работает как Read Committed, т.к. не поддерживает "грязное чтение".

Пример:

sql
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
SELECT * FROM users WHERE id = 1; -- Вернет одно значение
-- Другая транзакция изменяет users.id=1 и коммитит
SELECT * FROM users WHERE id = 1; -- Вернет то же значение, что и первый SELECT
COMMIT;
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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