perf: IoT 卡 30M 行分页查询优化(P95 17.9s → <500ms)
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m6s

- 新增 is_standalone 物化列 + 触发器自动维护(迁移 056)
- 并行查询拆分:多店铺 IN 查询拆为 per-shop goroutine 并行 Index Scan
- 两阶段延迟 Join:深度分页(page≥50)走覆盖索引 Index Only Scan 取 ID 再回表
- COUNT 缓存:per-shop 并行 COUNT + Redis 30 分钟 TTL
- 索引优化:删除有害全局索引、新增 partial composite indexes(迁移 057/058)
- ICCID 模糊搜索路径隔离:trigram GIN 索引走独立查询路径
- 慢查询阈值从 100ms 调整为 500ms
- 新增 30M 测试数据种子脚本和 benchmark 工具
This commit is contained in:
2026-02-24 16:23:02 +08:00
parent c665f32976
commit f32d32cd36
20 changed files with 2705 additions and 50 deletions

View File

@@ -0,0 +1,21 @@
version: '3.8'
services:
postgres-perf:
image: postgres:latest
container_name: postgres-perf-test
restart: unless-stopped
ports:
- "16289:5432"
environment:
POSTGRES_USER: erp_pgsql
POSTGRES_PASSWORD: erp_2025
POSTGRES_DB: junhong_cmp_test
TZ: Asia/Shanghai
volumes:
- /mnt/data1/database/pgsql/pgdata_perf:/var/lib/postgresql/data
shm_size: '18g'
deploy:
resources:
limits:
memory: 32G