Sobes.tech
Назад к вопросам
Senior
12

Почему UPDATE в PostgreSQL — это фактически DELETE и INSERT?

Компании, где спрашивали
СБК ПАРУС

Ответ от нейросети

sobes.tech AI

В PostgreSQL операция UPDATE часто реализуется как последовательность DELETE и INSERT из-за особенностей MVCC (многоверсионного контроля параллелизма).

Когда происходит UPDATE, PostgreSQL не изменяет строку на месте. Вместо этого:

  1. Старая версия строки помечается как устаревшая (DELETE).
  2. Создаётся новая версия строки с обновлёнными данными (INSERT).

Это позволяет поддерживать консистентность данных для параллельных транзакций и обеспечивает возможность отката изменений. Такой подход повышает производительность и надёжность работы с конкурентным доступом к данным.