Ich habe TRUNCATE
eine riesige (~ 120 GB) Tabelle mit dem Namen files
:
TRUNCATE files;
VACUUM FULL files;
Die Tabellengröße ist 0, es wurde jedoch kein Speicherplatz freigegeben. Irgendwelche Ideen, wie ich meinen verlorenen Speicherplatz zurückerhalten kann?
UPDATE: Der Speicherplatz wurde nach ca. 12 Stunden ohne mein Zutun freigegeben. Ich benutze Ubuntu 8.04 Server.
postgresql
truncate
disk-space
Adam Matan
quelle
quelle
Antworten:
Nach Kommentaren in der Quelle ,
truncate
schafft eine neue, leere Speicherdatei und löscht die alte Speicherdatei zum Zeitpunkt begehen. (Die Dokumentation schlägt vor, dass "Speicherdatei" nur eine Datei ist, was das Betriebssystem betrifft, aber ich verstehe die Terminologie möglicherweise falsch.)Da eine Datei scheinbar gelöscht wird, kann ich mir einige Fälle vorstellen, in denen das zugrunde liegende Betriebssystem diesen Speicherplatz möglicherweise nicht sofort freigibt. Ich stelle mir vor, dass die Speicherdatei in einigen Fällen zum Beispiel unter Windows im Papierkorb landet. Aber in meinem Fall hat das Abschneiden einer Tabelle unter PostgreSQL 9. unter Windows sofort den freien Speicherplatz erhöht.
Das Abschneiden wird auch im WAL-Protokoll aufgezeichnet. Ich weiß nicht, wie viel Wirkung das haben könnte.
quelle