Postgres 9.6仅索引扫描

时间:2016-09-29 17:02:44

标签: postgresql postgresql-9.6

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

问题

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

非相关背景: 我正在处理具有6B行的表,在生产环境中有很多INSERTSELECT

1 个答案:

答案 0 :(得分:6)

Quote from the release notes

  

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

(强调我的)

所以在9.5和之前的索引不能仅用于索引扫描:

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

因为col3不是索引列的一部分。这已经在9.6

中发生了变化