未日志表

一种表类型,其 WAL 日志记录已禁用,以提高写入性能

一个未日志表是一种表类型,写入其中的数据不会写入预写日志。与普通表相比,这大大提高了写入速度。

未日志表PostgreSQL 9.1中引入。

用法

未日志表本质上不是崩溃安全的,并且在服务器崩溃或不干净关机后会自动截断

未日志表的元数据将复制到流复制备机,但任何尝试访问备机上的表的尝试都将引发ERROR。如果备机提升为主机,则该表将可用。

PostgreSQL 9.5开始,可以使用ALTER TABLE将普通表更改为未日志表,反之亦然。

PostgreSQL 15开始,未日志序列可用于未日志表。

更改历史记录

示例

未日志表插入速度与普通表相比

注意:以下示例非常简单,仅用于说明未日志表上的插入速度快于日志表上的插入速度,但不会显示特定的速度比率。

postgres=# CREATE UNLOGGED TABLE unlogged_table (id int);
CREATE TABLE

postgres=# CREATE TABLE normal_table (id int);
CREATE TABLE

postgres=# \timing 
Timing is on.

postgres=# INSERT INTO unlogged_table (id) SELECT generate_series(1,10000);
INSERT 0 10000
Time: 7.107 ms

postgres=# INSERT INTO normal_table (id) SELECT generate_series(1,10000);
INSERT 0 10000
Time: 32.574 ms

分类

DDL存储

另请参阅

CREATE TABLE初始化分支,未日志序列

反馈

提交任何关于 "未日志表" 的评论、建议或更正 此处