非日志表

一种禁用 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初始化分叉,非日志序列

反馈

提交有关“非日志表”的任何评论、建议或更正 此处