Что физически происходит при INSERT, UPDATE и DELETE в Greenplum; почему после DELETE место на диске не освобождается и чем DELETE отличается от TRUNCATE?

В Greenplum строки распределяются по сегментам; изменения учитывают MVCC и тип хранения. DELETE обычно не уменьшает файл сразу, а TRUNCATE очищает таблицу целиком.

Короткий ответ

Что ответить на собеседовании

В Greenplum строки распределяются по сегментам; изменения учитывают MVCC и тип хранения. DELETE обычно не уменьшает файл сразу, а TRUNCATE очищает таблицу целиком.

Подробный разбор

Ответ с пояснениями

В Greenplum строки распределяются по сегментам; изменения учитывают MVCC и тип хранения. DELETE обычно не уменьшает файл сразу, а TRUNCATE очищает таблицу целиком.

Для heap-таблиц UPDATE создаёт новую версию строки, а DELETE делает старую недоступной новым снимкам. Освободить место для повторного использования помогает VACUUM; возврат места ОС обычно требует более тяжёлого обслуживания. Для append-optimized хранения механизм очистки и компактации отличается.

TRUNCATE не удаляет строки по условию, а очищает всю таблицу или выбранные поддерживаемые объекты с соответствующими блокировками. Точные детали проверяют по версии Greenplum и способу хранения, а не переносят безусловно из PostgreSQL.

Источник: knowledge.broadcom.com, knowledge.broadcom.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее