通过使用 EXPLAIN,可以看到运行查询的成本。成本以人工单位表示,它们基于预定义的参数。我相信 1 是一个磁盘提取,一个 CPU 周期是 0.01 个单位。我的问题是为什么 PostgreSQL 在安装时不自动运行测试来确定基于硬件的真实数字?这不应该是一个明显的速赢吗?
通过使用 EXPLAIN,可以看到运行查询的成本。成本以人工单位表示,它们基于预定义的参数。我相信 1 是一个磁盘提取,一个 CPU 周期是 0.01 个单位。我的问题是为什么 PostgreSQL 在安装时不自动运行测试来确定基于硬件的真实数字?这不应该是一个明显的速赢吗?
如果成本不变,可能会有边际收益。由于各种资源不可互换,因此这些单位必然是人工的。即使在同一系统上,成本也会在不同时间发生变化。
一旦创建了数据库,就有可能从数据库中确定更好的指标。使用更新的指标可能会以某种方式改变负载,而不是使它们无效。行为变得相对不可预测并且可能严重退化的界限是存在的。
您所指的是Oracle中的系统统计信息;我不认为 Postgres 支持这些(还?)。