PostgreSQL 使用基于成本的优化器 (CBO) 来确定给定查询的最佳执行计划。
优化器在规划阶段考虑多个替代计划。
使用 EXPLAIN 命令,用户只能检查所选计划,而不能检查考虑的替代方案。
为了解决这个问题,我开发了 pg_plan_alternatives ,这是一个使用 eBPF 来检测 PostgreSQL 优化器并跟踪在规划阶段考虑的所有替代计划及其成本的工具。
这些信息有助于用户了解优化器的决策过程并调整系统参数。
例如,查询应该是 SELECT * FROM mytable WHEREage > 50;执行全表扫描并应用过滤器,还是应该使用索引(有关此内容的更多详细信息,请参阅以下博客文章)。
来源:HackerNews New


