13.5. Caveats

某些 DDL 命令(目前仅TRUNCATE和表重写形式ALTER TABLE)不是 MVCC 安全的。这意味着在截断或重写提交之后,如果并发事务使用的是在 DDL 命令提交之前拍摄的快照,则该表将对并发事务显示为空。对于仅在 DDL 命令启动之前未访问相关表的事务,这将是一个问题-这样做的任何事务都将至少持有ACCESS SHARE表锁,这将阻塞 DDL 命令,直到该事务完成。因此,对于在目标表上进行连续查询,这些命令不会在表内容中引起任何明显的不一致,但是它们可能会导致目标表的内容与数据库中其他表之间的明显不一致。

尚未将对 Serializable 事务隔离级别的支持添加到 Hot Standby 复制目标中(在Section 26.5中进行了描述)。当前在热备用模式下支持的最严格的隔离级别是“可重复读取”。虽然在主服务器上执行可序列化事务中的所有永久数据库写操作将确保所有备用服务器最终都将达到一致状态,但在备用服务器上运行的可重复读取事务有时可能会看到一个瞬时状态,该状态与在服务器上的事务的任何串行执行都不一致。主。