PostgreSQL 临时表是不是已经取消记录?

Posted

技术标签:

【中文标题】PostgreSQL 临时表是不是已经取消记录?【英文标题】:Are PostgreSQL temporary tables already unlogged?PostgreSQL 临时表是否已经取消记录? 【发布时间】:2020-04-02 10:41:43 【问题描述】:

我正在处理一个数据库操作,该操作会产生大量插入(~ 15,000,000)。

我目前正在为这些数据使用临时表,因为操作后不再需要该数据。我最近发现,未记录的表具有更好的插入性能,因此我想使用它。但是阅读documentation,我不清楚临时表是否已经取消记录?如果他们不是,有没有办法让他们取消记录?

如果我尝试像这样更改临时表:

alter table temp_table set unlogged;

我收到错误:[42P16] ERROR: cannot change logged status of table "test" because it is temporary

【问题讨论】:

【参考方案1】:

临时表永远不会被 WAL 记录。

由于它们将与数据库会话一起消失,因此永远不需要恢复它们。

【讨论】:

我在做create temp unlogged table 并收到错误消息syntax error at or near "unlogged"。这节省了我的时间。

以上是关于PostgreSQL 临时表是不是已经取消记录?的主要内容,如果未能解决你的问题,请参考以下文章

在 Join PostgreSQL 中取消嵌套数组

postgresql 一些操作备忘

PostgreSQL临时表

取消记录更改

Postgresql中临时表(temporary table)的特性和用法

postgresql中带有临时表的存储函数