vacuum
физически не "освобождает" пространство. Он только помечает больше неиспользуемое пространство как повторно используемое. Поэтому последующие операторы UPDATE или INSERT могут использовать это пространство вместо добавления в таблицу.
Цитата из руководства
Стандартная форма VACUUM
удаляет версии мертвых строк в таблицах и индексах, а отмечает пространство, доступное для повторного использования в будущем . Однако не вернет пространство операционной системе , за исключением специального случая, когда одна или несколько страниц в конце таблицы становятся полностью свободными, и можно легко получить эксклюзивную блокировку таблицы
(акцент мой)
Если вы повторно вставите 250 удаленных строк, вы увидите, что таблица больше не увеличивается, поскольку вновь вставленные строки просто используют пространство, помеченное как свободное vacuum
.
Если вы действительно хотите физически уменьшить размер таблицы до требуемого размера, вам нужно запустить vacuum full
.
Цитата из руководства
VACUUM FULL
активно сжимает таблицы, записывая полную новую версию файла таблицы без мертвого пространства . Это минимизирует размер таблицы, но может занять много времени. Также требуется дополнительное место на диске для новой копии таблицы, пока операция не завершится
(акцент мой)