Mais de uma semana atrás, apaguei todas as linhas em uma tabela postgresql (não via truncate
, em vez de delete from ...
). Select count (*)
revela que as linhas da tabela agora são 0.
Agora, quando executo consultas para consultar o espaço em disco, ainda vejo a tabela ocupando espaço. Especificamente, todos os índices ainda existem e estão ocupando espaço. Como faço para me livrar deles e liberar espaço em disco? Em segundo lugar, por que eles permanecem em primeiro lugar, quando me livrei de todas as linhas?
Aqui está a descrição detalhada da tabela em caso justificado:
Table "public.links_photoobjectsubscription"
Column | Type | Modifiers
----------------+--------------------------+----------------------------------------------------------------------------
id | integer | not null default nextval('links_photoobjectsubscription_id_seq'::regclass)
viewer_id | integer | not null
updated_at | timestamp with time zone | not null
seen | boolean | not null
type_of_object | character varying(15) | not null
which_photo_id | integer |
which_link_id | integer |
which_group_id | integer |
which_salat_id | integer |
Indexes:
"links_photoobjectsubscription_pkey" PRIMARY KEY, btree (id)
"links_photoobjectsubscription_seen" btree (seen)
"links_photoobjectsubscription_updated_at" btree (updated_at)
"links_photoobjectsubscription_viewer_id" btree (viewer_id)
"links_photoobjectsubscription_which_photo_id" btree (which_photo_id)
Foreign-key constraints:
"links_photoobjectsubscription_viewer_id_fkey" FOREIGN KEY (viewer_id) REFERENCES auth_user(id) DEFERRABLE INITIALLY DEFERRED
"links_photoobjectsubscription_which_photo_id_fkey" FOREIGN KEY (which_photo_id) REFERENCES links_photo(id) DEFERRABLE INITIALLY DEFERRED
"which_group_id_photoobjectsubscription" FOREIGN KEY (which_group_id) REFERENCES links_group(id) ON DELETE CASCADE
"which_link_id_photoobjectsubscription" FOREIGN KEY (which_link_id) REFERENCES links_link(id) ON DELETE CASCADE
"which_salat_id_photoobjectsubscription" FOREIGN KEY (which_salat_id) REFERENCES links_salatinvite(id) ON DELETE CASCADE
Dos documentos em
VACUUM
Você basicamente precisa emitir um comando para reescrever toda a tabela (do mesmo documento),
No mesmo documento,
E, a partir dos documentos em
TRUNCATE