Основные отличия между командами VACUUM и VACUUM FULL в PostgreSQL:
- VACUUM только высвобождает пространство и делает его доступным для повторного использования. postgrespro.ru Эта форма команды может работать параллельно с обычными операциями чтения и записи таблицы, так как не требует исключительной блокировки. postgrespro.ru Однако освобождённое место не возвращается операционной системе (в большинстве случаев). postgrespro.ru
- VACUUM FULL переписывает всё содержимое таблицы в новый файл на диске, не содержащий ничего лишнего, что позволяет возвратить неиспользованное пространство операционной системе. postgrespro.ru Эта форма команды работает намного медленнее и запрашивает блокировку в режиме ACCESS EXCLUSIVE для каждой обрабатываемой таблицы. postgrespro.ru
Таким образом, VACUUM — более лёгкая и быстрая операция, отмечающая пространство как доступное для повторного использования, в то время как VACUUM FULL физически перестраивает данные и сжимает хранилище, обеспечивая более тщательную очистку. www.percona.com