无日志表的缺点

use*_*074 5 postgresql write-ahead-logging unlogged-tables

为了更快地进行更新,我正在使用:

ALTER TABLE imagingresourceplanning.opnav_fact_revenue_costs SET UNLOGGED ;
Run Code Online (Sandbox Code Playgroud)

这个命令的缺点是什么?

如果系统在更新期间崩溃会发生什么?表中的所有数据都被删除了吗?或者只有正在进行的更新会丢失?

Eva*_*oll 6

日志记录参考Write-Ahead-Logs

本质上,所有内容都会提前写入日志。如果数据库稳定性(崩溃安全)出现问题,可以随时回放该日志。这意味着数据被写入两次,一次写入日志并在内存中表示,稍后刷新到表的堆中。

日志还可以发送到从属服务器,并可以在时间点 (PITR) 复制中发挥作用。

查看有关预写式日志记录的 PostgreSQL 实现的文档以获取更多信息。


如果系统崩溃(没有完全关闭),未记录表的内容将被删除,如手册中所述

但是,它们并不是崩溃安全的:未记录的表在崩溃或不正常关闭后会自动截断