了解未记录的表格,提交和检查点postgres

时间:2017-10-18 15:44:40

标签: postgresql

我必须每天在Postgres 9.6中的多个表中插入大量行。在这些表中的一些表中可以加载600万行1kb,卷非常大,这需要相当快速地完成。

我有一些转换需求,所以我不能直接从源代码中使用copy;另外,copy不会更新现有行。我可以在转换后使用fdw包装器,但这也需要SQL。因此,我决定使用生产者消费者并发模式编写一个java程序,生成器从文件读取,消费者使用多行upserts写入postgres。

我可以从最终源重新创建数据,我想我可以跳过WAL并使用未记录的表 - 在复制之前将它们记录下来并在复制后将它们记录下来,我在v9.6上。

我做了所有这些,现在想要执行性能测试,在我这样做之前,我想知道未记录的表的提交和检查点是什么意思。我怀疑数据和索引文件(我已经删除了索引)将在检查点写入。这是我的问题

1)提交时会发生什么,因为提交适用于WAL并且WAL中没有未记录的表的数据?提交将我的数据和索引文件写入磁盘;或者,它的不必要的操作和数据只会写在检查点?

2)最终,我应该为未记录的表调整什么?

感谢。

0 个答案:

没有答案