跳到主要内容

物化视图的插入是同步的吗?

·2 分钟阅读
本知识库文章探讨物化视图的插入是否是同步的

物化视图的插入是同步的吗?

问题: 当源表中有新行插入时,这些新行也会发送到该源表的所有物化视图。物化视图的插入是同步执行的吗?也就是说,一旦从服务器到客户端成功确认插入,是否意味着所有物化视图都已完全更新并可用于查询?

答案

  1. INSERT 成功时,数据会同时插入到表和所有物化视图中。
  2. 对于物化视图,插入不是原子性的。在 INSERT 正在进行的时间点,并发客户端可能会看到中间状态,即数据已插入到主表,但尚未插入到物化视图,反之亦然。
  3. 如果您正在使用 异步插入,它们会收集数据并在后台执行常规插入,向客户端返回与常规插入相同类型的响应。如果客户端从带有 wait_for_async_insert 选项(默认情况下)的异步插入接收到成功响应,则数据将插入到表及其所有物化视图中。

问题: 链式/级联物化视图呢?

答案: 相同的规则适用 - INSERT 带有成功响应意味着数据已插入到链中的每个物化视图中。插入是非原子性的。