SuperAPI AI 工具集

neon-postgres-egress-optimizer

数据与分析

查看项目

更新于 10-16 09:29

技能介绍

用途:诊断并修复应用侧查询模式导致的 Postgres 出口流量(egress)过高问题,多数高额账单源于应用获取了超出实际使用的数据。

主要能力:借助 pg_stat_statements 扩展定位传输数据量最大的查询,按总行数、单次执行行数、调用频率、执行时长排序;结合表结构识别 JSONB、TEXT、BYTEA 等宽列;在无统计信息时直接分析代码库中的查询模式。

使用方式:先检查扩展是否可用(SELECT 1 FROM pg_stat_statements LIMIT 1;),必要时执行 CREATE EXTENSION IF NOT EXISTS pg_stat_statements;。Neon 上默认可用但可能仍需创建。计算缩容重启会清空统计,可用 SELECT pg_stat_statements_reset(); 重置后让应用在代表性流量下运行至少一小时再诊断。随后检查查询是否只选所需列、是否有 LIMIT/分页、是否高频可缓存、是否在应用层聚合、JOIN 是否重复父表数据。

常见修复:将 SELECT * 改为显式列;为列表接口加分页(ORDER BY id LIMIT 50 OFFSET 0);对静态数据加缓存层;把聚合下推到 SQL(GROUP BY);用两次独立查询替代会重复宽父表数据的 JOIN。修改后运行测试、核对响应结构,并可用 pg_stat_statements_reset() 后对比前后数据。

补充:可用 neon.ts 基础设施即代码配置非生产分支的计算与存储,如 npm i @neon/config,设置 ttl、autoscalingLimitMinCu、autoscalingLimitMaxCu、suspendTimeout,再执行 neon config apply。这属于辅助手段,真正降低出口费用仍靠查询模式修复。

限制:仅在任务明确匹配其上游产品或 API 范围时使用;执行前应依据当前官方文档核实命令、API 行为、价格、配额、凭据与部署影响;示例不能替代环境特定测试、安全审查或对破坏性/高成本操作的用户批准。具体定价与配额细节暂未提供。