我想问一下, ADB 物化视图 MATERIALIZED VIEW, 假如我执行视图更新需要1分钟?

我想问一下, ADB 物化视图 MATERIALIZED VIEW, 假如我执行视图更新需要1分钟, 在执行更新操作的时候, 其他用户在查询这个表数据, 查询到的是旧的数据,还是更新中的数据?

展开
收起
真的很搞笑 2023-05-17 15:05:29 36028 分享 版权
3 条回答
写回答
取消 提交回答
  • 在 ADB 中,物化视图 MATERIALIZED VIEW 的更新过程是异步的,也就是说,更新操作不会阻塞其他用户的查询操作,其他用户在查询该表时,会先查询到旧的数据。等到视图更新程序完成操作并在内部提交时,查询操作才会看到最新的数据。

    ADB 中的 MATERIALIZED VIEW 视图执行更新操作有两种方式:手动和自动。手动更新通过使用 REFRESH MATERIALIZED VIEW 命令手动刷新视图来更新视图。自动更新由视图定义中的 AXIOM 或事件驱动器执行,根据视图定义中的条件来更新视图。

    无论是手动更新还是自动更新,MATERIALIZED VIEW 的更新都是在后台异步执行的。因此在这个视图更新的过程中,其他用户所看到的数据将是上一次数据状态的快照,而不是新的更新状态的数据。

    因此,在更新稍微耗费时间的物化视图的过程中,其他用户一般建议尽可能地避免执行可能对该视图的更新产生干扰的操作,直到视图的更新操作已经完成。

    2023-05-20 16:47:22
    赞同 展开评论
  • 值得去的地方都没有捷径

    在执行 MATERIALIZED VIEW 的更新操作时,其他用户在查询这个表数据时,会查询到旧的数据,直到更新操作完成。这是因为 MATERIALIZED VIEW 是一种物化视图,它会在物理上存储视图的结果集,而不是像普通视图一样只是一个查询的定义。因此,在更新操作执行期间,其他用户访问这个物化视图时,会查询到存储在磁盘上的旧的结果集,而不是正在更新的结果集。更新操作完成后,其他用户再次访问该物化视图时,会查询到最新的结果集。

    2023-05-19 19:04:03
    赞同 展开评论
  • 查询到的是旧数据。,此回答整理自钉群“云数据仓库ADB-开发者群”

    2023-05-17 15:13:19
    赞同 展开评论

阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。

收录在圈子:
+ 订阅
让用户数据永远在线,让数据无缝的自由流动
还有其他疑问?
咨询AI助理