Slim Asked: 2024-05-14 16:35:21 +0800 CST2024-05-14 16:35:21 +0800 CST 2024-05-14 16:35:21 +0800 CST Postgres 15 列丢失影响 772 删除列操作是否可扩展? 以前,我们在更新大量记录时遇到问题,因为它占用了更多空间。 删除列操作是否就是这种情况? postgresql 1 个回答 Voted Best Answer Laurenz Albe 2024-05-14T18:19:40+08:002024-05-14T18:19:40+08:00 ALTER TABLE ... DROP COLUMN ...是一个非常快的操作,因为它只更改元数据而不重写表。 您应该注意两件事: 删除列不会减少表的大小,因为现有行不会被修改。新表行将缺少删除的列。VACUUM (FULL)没有帮助,你必须更新表格。 ALTER TABLE ... DROP COLUMN ...ACCESS EXCLUSIVE需要对表进行短暂锁定,这与所有其他访问(甚至查询)冲突。
ALTER TABLE ... DROP COLUMN ...
是一个非常快的操作,因为它只更改元数据而不重写表。您应该注意两件事:
删除列不会减少表的大小,因为现有行不会被修改。新表行将缺少删除的列。
VACUUM (FULL)
没有帮助,你必须更新表格。ALTER TABLE ... DROP COLUMN ...
ACCESS EXCLUSIVE
需要对表进行短暂锁定,这与所有其他访问(甚至查询)冲突。