Ada*_*tan 14 postgresql truncate disk-space
我有TRUNCATE
一个巨大的(~120Gb)表,名为files
:
TRUNCATE files;
VACUUM FULL files;
Run Code Online (Sandbox Code Playgroud)
表大小为 0,但没有释放磁盘空间。任何想法如何回收我丢失的磁盘空间?
更新: 磁盘空间在大约 12 小时后释放,我这边没有任何操作。我使用 Ubuntu 8.04 服务器。
Mik*_*ll' 12
根据源码中的注释,truncate
新建一个空的存储文件,并在提交时删除旧的存储文件。(文档建议“存储文件”就操作系统而言只是一个文件,但我可能会误解该术语。)
为关系创建一个新的空存储文件,并将其分配为 relfilenode 值。旧存储文件计划在提交时删除。
由于它似乎正在删除一个文件,我可以想象在某些情况下底层操作系统可能不会立即释放该空间。我想在某些情况下,存储文件可能最终会出现在 Windows 下的回收站中,例如。但就我而言,在 PostgreSQL 9.something 下截断一个表会立即增加 Windows 下的可用空间。
截断也记录在 WAL 日志中。不知道会有多大影响。
归档时间: |
|
查看次数: |
6393 次 |
最近记录: |