如何提升PostgreSQL物化视图刷新速度并降低CPU资源占用
PostgreSQL物化视图刷新优化问题
我有一个每15分钟运行一次的函数,负责从多个生产数据库同步新增、更新、删除的记录到PostgreSQL数据仓库。原始数据入库后会经过转换,最终通过带CONCURRENTLY选项的物化视图为客户端提供服务,执行语句为:
REFRESH MATERIALIZED VIEW CONCURRENTLY schemaname.matviewname
该流程每15分钟执行一次,整体运行正常无报错,但耗时过长且资源消耗过高——在Amazon RDS db.t3.large实例上每次刷新会占用1vCPU。由于缺少足够日志无法深入定位根因,现需解决两个核心问题:
- 如何缩短物化视图的刷新时间?
- 如何降低每15分钟刷新物化视图时的CPU影响(控制在1vCPU以内)?
各物化视图的刷新耗时日志如下:
NOTICE: Refreshing base metaviews NOTICE: Refreshing matview1 Time spent=00:06:08.940783 NOTICE: Refreshing matview2 Time spent=00:01:51.013243 NOTICE: Refreshing matview3 Time spent=00:01:08.243421 NOTICE: Refreshing matview4 Time spent=00:00:24.681019 NOTICE: Refreshing matview5 Time spent=00:00:03.235798 NOTICE: Refreshing matview6 Time spent=00:00:20.523829 NOTICE: Materialized views refreshed.
目前我正尝试实现AWS博客中的快速刷新方案,但尚未成功。
内容的提问来源于stack exchange,提问作者mainakibui
相关产品推荐
相关产品推荐

