渴望实现的并发问题?

时间:2017-10-03 13:08:06

标签: postgresql database-design concurrency

使用PostgreSQL 9.6.5,我正在远离内置的MATERIALIZED VIEW模型,因为它缺少增量刷新,而且就我的目的而言(通过SymmetricDS复制)我实际上需要表存储中的数据,而不是视图。我的解决方案:

  1. 创建一个"非物质化视图" VIEW_XXX_UNMAT(实际上只是一个选择)
  2. VIEW_XXX(快照)
  3. 中选择创建表VIEW_XXX_UNMAT
  4. 将主键添加到VIEW_XXX
  5. 创建一个刷新功能,根据主键删除并重新插入VIEW_XXX
  6. INSERT中涉及的每个表创建DELETE / UPDATE / VIEW_XXX_UNMAT个触发器,使用适当的PK调用刷新函数
  7. 我的灵感来自于这个PGCon 2008谈话,一旦我们克服了创建所有这些触发器的障碍,它就能很好地工作。显然,我们将UPDATE触发器限制为所涉及的列,并且仅在NEW数据与OLD数据不同时才刷新视图。

    此时我想知道:

    1. 如果有更好的解决方案(扩展名?),请记住我最终需要表格
    2. 性能问题(我知道刷新成本是写入限制的,但因为物化表已编入索引,所以速度非常快?)
    3. 并发问题(如果两个人同时更新同一个字段,通过触发器刷新物化视图,其中一个会失败,或者MVCC&#34;会照顾它&#34;?)< / LI>

0 个答案:

没有答案