SYSTEM ATLASЗагрузка материала

Phantom Read

Phantom Read

Повторный запрос может увидеть новые строки, появившиеся во время транзакции.

Простыми словами

Представьте отчёт по всем неоплаченным заказам: между двумя чтениями другая транзакция добавляет новый заказ, и в выборке появляется «призрак». Phantom read показывает, что повторный запрос по условию может вернуть другой набор строк, даже если старые строки не менялись.

Механизм действия

Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.

Пример в работе

Нерабочий подход

Применять локальное решение без проверки контекста, ограничений и вторичных последствий.

Системный подход

Сначала определить механизм, затем выбрать минимальное изменение и измерить результат.

Ограничения

«Phantom Read» объясняет только часть происходящего в области «Базы данных и данные». Сам принцип не говорит, насколько сильным будет эффект в вашем случае, и не заменяет измерения. При другом масштабе, среде или временном горизонте результат может отличаться.

Источник

PostgreSQL Global Development Group. PostgreSQL Documentation: Concurrency Control and Performance. 2026.

Первоисточник