物化视图的插入是同步的吗?
·2 分钟阅读
本知识库文章探讨物化视图的插入是否是同步的
物化视图的插入是同步的吗?
问题: 当源表中有新行插入时,这些新行也会发送到该源表的所有物化视图。物化视图的插入是同步执行的吗?也就是说,一旦从服务器到客户端成功确认插入,是否意味着所有物化视图都已完全更新并可用于查询?
答案
- 当
INSERT
成功时,数据会同时插入到表和所有物化视图中。 - 对于物化视图,插入不是原子性的。在
INSERT
正在进行的时间点,并发客户端可能会看到中间状态,即数据已插入到主表,但尚未插入到物化视图,反之亦然。 - 如果您正在使用 异步插入,它们会收集数据并在后台执行常规插入,向客户端返回与常规插入相同类型的响应。如果客户端从带有
wait_for_async_insert
选项(默认情况下)的异步插入接收到成功响应,则数据将插入到表及其所有物化视图中。
问题: 链式/级联物化视图呢?
答案: 相同的规则适用 - INSERT
带有成功响应意味着数据已插入到链中的每个物化视图中。插入是非原子性的。