Postgres 9.6 сканирование только по индексу

У Postgres есть новая версия 9.6 — я прочитал документы о сканировании только индекса. Я знаю о куче таблиц postgres и знаю, как работают частичные индексы (или индексы в целом). Я просто не понимаю преимущества использования только индекса.

Вопросы

  • Что действительно изменилось? Разве мы уже не использовали сканирование только по индексу?
  • Как и когда я должен использовать их, чтобы получить максимальную пользу?

не связанная с этим предыстория: я имею дело с таблицами со строками размером 6 Б с большим количеством INSERT и SELECT в рабочих средах.


person Or Duan    schedule 29.09.2016    source источник


Ответы (1)


Цитата из примечаний к выпуску

Разрешить сканирование только индекса в частичном индексе, когда предложение WHERE индекса ссылается на неиндексированные столбцы

(выделено мной)

Таким образом, в версии 9.5 и ранее следующий индекс нельзя было использовать для сканирования только по индексу:

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

Потому что col3 не было частью проиндексированных столбцов. Это изменилось в 9.6

person a_horse_with_no_name    schedule 29.09.2016