↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

ORM 的多态关联为什么会拖垮规划器 RSS

Andrei Lepikhov 讨论 ORM 常见的多态关联:一列要指向多张互不相关的表,通常用类型加 id 的判别式外键,再用一串带类型条件的 LEFT JOIN 还原。问题出在规划器:连接链上的选择率误差会逐级相乘放大,当 join_collapse_limit 被突破、EXISTS 子查询没能放到合适位置时,基表行要走完整条 LEFT JOIN 链才被过滤。作者说这篇先界定问题,后续再给优化器改法。

发布于 2026-09-10T10:59:41.417306Z · Andrei Lepikhov · danolivo.substack.com
ORM 规划器 连接

Andrei Lepikhov 讨论 ORM 常见的多态关联:一列要指向多张互不相关的表,通常用类型加 id 的判别式外键,再用一串带类型条件的 LEFT JOIN 还原。问题出在规划器:连接链上的选择率误差会逐级相乘放大,当 join_collapse_limit 被突破、EXISTS 子查询没能放到合适位置时,基表行要走完整条 LEFT JOIN 链才被过滤。作者说这篇先界定问题,后续再给优化器改法。

Andrei Lepikhov 讨论 ORM 常见的多态关联:一列要指向多张互不相关的表,通常用类型加 id 的判别式外键,再用一串带类型条件的 LEFT JOIN 还原。问题出在规划器:连接链上的选择率误差会逐级相乘放大,当 join_collapse_limit 被突破、EXISTS 子查询没能放到合适位置时,基表行要走完整条 LEFT JOIN 链才被过滤。作者说这篇先界定问题,后续再给优化器改法。

原始来源 ↗

来源记录
  • center.info_item · e7cfa1be451d37cd · 2026-10-03T04:08:35.169032Z
  • pgweb.info_item · e7cfa1be451d37cd · 2026-10-03T04:08:55.967155Z