【问题标题】:Do EXTENDED STATISTICS have any trade offs in PostgreSQL?扩展统计在 PostgreSQL 中是否有任何权衡?
【发布时间】:2020-08-19 08:15:59
【问题描述】:

扩展统计信息可帮助规划人员评估查询复杂性,以便选择正确的算法来处理查询。在表中的几个相关列上创建新的统计信息可能会在数据库的某处创建一些复杂的结构,因为它们必须通过 ANALYZ(E)ing 表来刷新。有一个表 pg_statistics_ext_data 我什至无法查看,因为我的主(也是唯一的)帐户没有选择权限。

我要问的是,它们是否对这些统计数据进行了权衡?它们会占用磁盘上的大量数据吗?我能以某种方式找出多少钱吗?

如果我手动创建它们,为什么不是每次都使用它们?

【问题讨论】:

  • 就像正常的统计数据一样,它们是相对轻量级的(它们必须是)。每行不应存在超过一页的数据。如果你真的有兴趣,你可以查看文档和源代码,或者进行实验。 postgresql.org/docs/11/…

标签: sql postgresql explain table-statistics


【解决方案1】:

维护和使用这些统计信息的费用随着列数的增加而增加。想象一下,必须跟踪宽表中每对列的相互依赖关系!

无论何时 PostgreSQL 收集统计信息以及计划查询时,都必须为扩展统计信息付出代价。这就是为什么他们应该只在必要时才使用。

【讨论】:

  • 知道了,谢谢。因此,如果我只为一对相关列创建统计信息 - “pg_statistic_ext”中只有一行,就是这样?当我有很多扩展统计信息时,问题就来了?
  • 这不是问题,但有一些开销。如果您有大量扩展统计信息,尤其是在 default_statistics_target 很高的情况下,开销可能会成为问题。
猜你喜欢
  • 2017-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-07
  • 2020-09-17
  • 2014-02-26
  • 2019-01-26
  • 1970-01-01
相关资源
最近更新 更多