postgresql物化视图刷新常见的有直接刷新refresh和增量刷新,这两种刷新思路都不满足当前业务需求,直接refresh会锁定物化视图,增量刷新局限于版本和唯一索引,经过改造提供以下新的解决思路:
drop materialized view if exists view_name_ls;
–创建和原物化视图相同逻辑的临时物化视图
create materialized view view_name_ls as 原物化视图逻辑;
–原物化视图重命名为带动态时间后缀的名称
alter materialized view view_name rename to view_name_${day}${hh24};
–第二步创建的临时物化视图重命名为原物化视图
alter materialized view view_name_ls rename to view_name;
–删除带动态时间后缀的名称物化视图
drop materialized view view_name_${day}${hh24};
定期清理因不可坑距因素导致drop失败的带日期的物化视图
完美解决PostgreSQL物化视图刷新问题alter操作速度非常快,不用担心物化视图rename时不存在的空白期。
针对PostgreSQL物化视图的直接刷新和增量刷新存在的问题,提出了一种新的解决方案:通过创建临时物化视图,重命名原有物化视图并删除旧视图来实现快速刷新,避免了锁定和依赖限制,确保了物化视图的连续可用性。
4225

被折叠的 条评论
为什么被折叠?



