You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL查询性能优化请求:耗时查询改写建议

PostgreSQL查询优化改写方案

原查询的核心性能瓶颈在于关联子查询,它会对yunm分组后的每一行单独发起一次查询,数据量较大时会显著降低执行效率。以下是最优改写方案及配套优化建议:

改写后的查询语句

SELECT 
    y.fgh_dk,
    ft.dmb,
    y.ghk_nm,
    SUM(y.hjlm_sup) AS mgh_klmno
FROM yunm y
LEFT JOIN fgh_tonee ft ON ft.id = y.fgh_dk
WHERE y.fgh_dk IS NOT NULL
GROUP BY y.fgh_dk, y.ghk_nm, ft.dmb
ORDER BY y.fgh_dk, y.ghk_nm;

改写说明

  • 用LEFT JOIN替代关联子查询,让数据库可以通过更高效的关联算法(如嵌套循环、哈希连接)一次性完成表关联,避免重复执行子查询。
  • 若能确保yunm表的fgh_dk在fgh_tonee表中都有对应记录,可将LEFT JOIN改为INNER JOIN,进一步提升查询效率。

配套索引优化建议

索引是提升查询性能的关键,针对该查询建议创建以下索引:

  • 给yunm表创建覆盖索引,直接满足分组、过滤和求和需求,避免回表:
    CREATE INDEX idx_yunm_fghdk_ghknm ON yunm(fgh_dk, ghk_nm) INCLUDE (hjlm_sup);
    
  • 确保fgh_tonee表的id字段有主键或唯一索引(若尚未创建):
    CREATE UNIQUE INDEX idx_fghtonee_id ON fgh_tonee(id);
    

内容的提问来源于stack exchange,提问作者sportyrdy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 01:36:20