克里斯托夫·佩图斯:ALTER TABLE … SET WITHOUT OIDS 的大陷阱

💡 原文英文,约200词,阅读约需1分钟。
📝

内容提要

PostgreSQL在删除列时,通常不会对表中的数据产生影响,只会在系统目录中标记该列已不可用,但ALTER TABLE ... SET WITHOUT OIDS命令除外,它会重写整个表,可能会占用大量辅助存储空间,可以通过增加maintenance_work_mem来减轻影响。

🎯

关键要点

  • 在PostgreSQL中,删除列通常不会影响表中的数据,只是将该列标记为不可用。
  • ALTER TABLE ... SET WITHOUT OIDS命令是一个例外,它会重写整个表并重新索引。
  • 使用ALTER TABLE ... SET WITHOUT OIDS时,可能会占用大量辅助存储空间。
  • 重写表时,所需的存储空间可能达到表的大小。
  • 在临时文件存储中,重新索引可能会占用显著的存储空间。
  • 可以通过增加maintenance_work_mem来减轻存储空间的影响。
➡️

继续阅读