【发布时间】:2011-11-11 16:33:20
【问题描述】:
如果我在事务内部创建一个临时表,使用 COPY 命令填充它,并使用 ON COMMIT DROP 选项,表数据是否仍会写入 WAL 并复制到从数据库?我正在做一个相当大的导入,使用这些数据做一些工作,然后我不再需要它了。我不想回滚整个事务,因为我想保留使用源数据完成的工作,但我不再需要源数据,所以我不想浪费时间和带宽来复制和删除它在奴隶上。
【问题讨论】:
如果我在事务内部创建一个临时表,使用 COPY 命令填充它,并使用 ON COMMIT DROP 选项,表数据是否仍会写入 WAL 并复制到从数据库?我正在做一个相当大的导入,使用这些数据做一些工作,然后我不再需要它了。我不想回滚整个事务,因为我想保留使用源数据完成的工作,但我不再需要源数据,所以我不想浪费时间和带宽来复制和删除它在奴隶上。
【问题讨论】:
临时表在 PostgreSQL 中没有 WAL 日志记录。
您可能对这个关于未记录表的article by Robert Haas(PostgreSQL 核心开发人员)感兴趣 - 这也阐明了临时表的行为。
【讨论】: