一些 DDL 命令,目前仅限于 TRUNCATE
和 ALTER TABLE
的表重写形式,不是 MVCC 安全的。这意味着在截断或重写提交后,如果并发事务使用 DDL 命令提交前获取的快照,则该表将对它们显示为空。这仅对在 DDL 命令开始前未访问过相关表的交易构成问题——任何执行过此操作的交易都将至少持有 ACCESS SHARE
表锁,这将阻止 DDL 命令,直到该交易完成。因此,这些命令不会对目标表的后续查询造成明显的表内容不一致,但它们可能会导致目标表内容与数据库中其他表之间出现可见的不一致。
对可串行化事务隔离级别的支持尚未添加到热备复制目标(在第 26.4 节中描述)。热备模式下当前支持的最严格的隔离级别是可重复读。虽然在主服务器上在可串行化事务中执行所有永久数据库写入将确保所有备服务器最终都将达到一致状态,但在备服务器上运行的可重复读事务有时可能会看到与主服务器上任何事务的串行执行不一致的瞬态状态。
对系统目录的内部访问不会使用当前事务的隔离级别。这意味着新创建的数据库对象(如表)对并发可重复读和可串行化事务可见,即使它们包含的行不可见也是如此。相反,在更高的隔离级别中,显式检查系统目录的查询看不到表示并发创建的数据库对象的行。
如果您在文档中发现任何不正确的内容、与您对特定功能的体验不符的内容或需要进一步澄清的内容,请使用此表单报告文档问题。