发布于 2026-09-10T10:59:38.165838Z · Shaun Thomas · pgEdge 博客

一条 2 到 3 秒的查询,遇上 4000 个用户要求 60 秒内出结果,就变成 67 个并发执行,两核机器根本吃不下。Shaun Thomas 给出分层的替代方案:物化视图配 pg_cron 定时刷新,适合分钟级新鲜度的报表;pg_ivm 用触发器做增量维护,把秒级的全量刷新压到毫秒,代价是写入变重;再往外是 Redis 一类共享缓存,由后台进程按固定周期刷新;最外层用 CDN 或 Varnish 缓存 HTTP 响应。核心是让查询发生得更少。
一条 2 到 3 秒的查询,遇上 4000 个用户要求 60 秒内出结果,就变成 67 个并发执行,两核机器根本吃不下。Shaun Thomas 给出分层的替代方案:物化视图配 pg_cron 定时刷新,适合分钟级新鲜度的报表;pg_ivm 用触发器做增量维护,把秒级的全量刷新压到毫秒,代价是写入变重;再往外是 Redis 一类共享缓存,由后台进程按固定周期刷新;最外层用 CDN 或 Varnish 缓存 HTTP 响应。核心是让查询发生得更少。
来源记录
- center.info_item · 9f88a302fe1abf69 · 2026-10-03T04:08:35.169032Z
- pgweb.info_item · 9f88a302fe1abf69 · 2026-10-03T04:08:55.967155Z