Я искал для ответа на этот вопрос, но единственной ссылкой, которую я смог найти, была неясная публикация форума, в которой говорилось, что операторы, в том числе% (по модулю) , были " (т. е. может использовать индекс, над которым работал оператор).Может ли postgres использовать индекс, когда предложение является модулем
Однако мы имеем некоторые ситуации, когда использование модуля для параллелизации наших процессов, по-видимому, не использует индекс, в котором работает модуль, даже на первичный ключ поле. Возможно, оптимизатор решает, что сканирование таблицы в любом случае дешевле, но трудно определить причину отказа от индекса.
У кого-нибудь есть окончательный ответ или аналогичный опыт?
Postgres/EDB v9.3
ТИА.
Редактировать например.
CREATE TABLE my_table(id bigint, othercolumn varchar(50), PRIMARY KEY(id))
... вставить х миллионов записей в таблицу ...
SELECT othercolumn from my_table where id % 1000 = 0
Если вы создаете индекс с этим выражением, то да, Postgres будет использовать этот индекс, если он улучшит производительность. Но вам нужно добавить определение таблицы ('create table ...') и запрос к вашему вопросу, чтобы на это можно было ответить правильно. См. Здесь: http://stackoverflow.com/tags/postgresql-performance/info –
Это очень общий вопрос. Я добавлю пример. – mrmoosehead
Частичный индекс - это возможность, за исключением того, что мы хотим, чтобы модульная «параллелизация» настраивалась ... – mrmoosehead