Разница между VACUUM и VACUUM FULL в PostgreSQL заключается в уровне агрессивности освобождения пространства для хранения. 1
VACUUM анализирует и освобождает пространство в базе данных PostgreSQL. 1 Когда строки в таблице удаляются или обновляются, занятое ими пространство не освобождается сразу, а отмечается как доступное для будущего использования. 1 Этой команде не нужен доступ к таблице, что позволяет другим транзакциям одновременно читать и писать в неё. 1
VACUUM FULL — более интенсивная операция. 3 Она не только удаляет мёртвые строки, но и уплотняет таблицу и возвращает пространство в файловую систему. 3 Для завершения операции требуется эксклюзивный доступ к таблице, во время её выполнения другие транзакции не могут читать или писать в неё. 1
Таким образом, VACUUM — это лёгкая и быстрая операция, которая отмечает пространство как доступное для повторного использования, в то время как VACUUM FULL физически перестраивает данные и сжимает хранилище, обеспечивая более тщательную очистку. 1