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物化视图的高效且低干扰刷新。使用该方法,alter操作快速且不影响业务连续性。
1128

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



