如何防止在PostgreSQL中仅在一张表上进行预写登录?

时间:2020-03-05 18:46:02  来源:igfitidea点击:

我正在考虑在PostgreSQL中预写日志(WAL)的日志传送,以创建一个热备份数据库。但是,数据库中有一个表每天都会收到大量的INSERT / DELETE,但是我并不关心保护其中的数据。为了减少产生的WAL数量,我想知道,是否有一种方法可以防止将一张桌子上的任何活动记录在WAL中?

解决方案

回答

不幸的是,我不相信那里。 WAL日志记录在页面级别进行操作,该级别远低于表级别,甚至不知道哪个页面保存来自哪个表的数据。实际上,WAL文件甚至都不知道哪些页面属于哪个数据库。

我们可能会考虑将高活动性表移至完全不同的PostgreSQL实例。这似乎太过激烈了,但是我想不出另一种方法来避免让该活动显示在WAL文件中。

回答

为我自己的问题提供一个选择。我认为临时表"临时表会在会话结束时或者在当前事务结束时自动删除(请参见下面的ON COMMIT)",我认为这不会生成WAL。即便如此,由于表的创建和设计将必须包含在代码中,因此这可能还是不理想的。

回答

我会考虑使用memcached这样的用例。我们甚至还可以将负载分散到大量廉价机器上。