我的postgres table occupied 100% memory
想要截断它。
当我使用TRUNCATE TABLE TABLE_NAME
语句时,它显示在错误下方:
错误:无法扩展文件 “ pg_tblspc / 4815857 / PG_11_201809051 / 16321”:设备上没有剩余空间 提示:检查可用磁盘空间。
所以我尝试了DELETE FROM TABLE_NAME
语句,该语句不会释放已用空间。
如何强制截断?
答案 0 :(得分:2)
TRUNCATE
需要为表创建一个新的(空)文件,这可能会导致您的问题。您可以DROP
表并重新创建它。
另一种更麻烦的方式是
DELETE FROM table_name;
VACUUM table_name; -- no FULL!
尽管VACUUM
通常不缩小表,但是它将截断表末尾的有效页面。如果该表为空,则将删除所有页面。