是`ALTER TABLE mytable REPLICA IDENTITY FULL;`大容量postgres数据库的



我正在使用debezium和Postgres数据库。该数据库包含几个具有TOAST(超大型属性存储技术(列的表。要处理未更改的Postgres TOAST列值,一种方法是将表的REPLICA IDENTITY设置为FULL。但是,我不确定运行ALTER TABLE mytable REPLICA IDENTITY FULL是否会导致数据库停机,或者它是否是一个安全的操作。REPLICA IDENTITY的当前值为DEFAULT

更改副本标识不会导致停机时间,但它需要对表进行短的ACCESS EXCLUSIVE锁定,如果您有涉及该表的长时间运行的事务,则这可能是一个问题。

然而,我不认为这个练习有什么意义。这与TOAST无关;唯一的影响是,复制的UPDATEDELETE语句将使所有列都处于WHERE条件下,而不仅仅是主键,这将增加WAL量并对性能不利。

REPLICA IDENTITY FULL主要是没有主键的表的支柱,无论如何都要避免主键。

相关内容

  • 没有找到相关文章

最新更新