【问题标题】:Postgres 9.6 Index-only scanPostgres 9.6 仅索引扫描
【发布时间】:2016-09-29 17:02:44
【问题描述】:

Postgres 有 new release 9.6 - 我已经阅读了关于仅索引扫描的 docs。 我知道 postgres 表的堆,并且我知道部分索引(或一般索引)是如何工作的。 我只是不明白仅索引的好处。

问题

  • 真正改变了什么?我们不是已经使用了仅索引扫描吗?
  • 我应该如何以及何时使用它们来获得最佳收益?

非相关背景: 我正在处理生产环境中包含大量 INSERTs 和 SELECTs 的 6B 行表

【问题讨论】:

    标签: postgresql postgresql-9.6


    【解决方案1】:

    Quote from the release notes

    当索引的 WHERE 子句引用未编入索引的列时,允许对部分索引使用仅索引扫描

    (强调我的)

    所以在 9.5 及之前的版本中,以下索引不能用于仅索引扫描:

    create index on foo (col1, col2)
       where col3 = 42;
    

    因为col3 不是索引列的一部分。这在 9.6 中发生了变化

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-23
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 2022-01-16
      相关资源
      最近更新 更多