Есть составной уникальный ключ: (DocNo BIGINT, DocDate DATE) Делаю: "DocDate" BETWEEN 'дата_начала' AND 'дата_окончания' Вопрос: нужно ли мне создавать еще один индекс на DocDate, или нынешний постгрес уже умеет использовать составные ключи?
Скорее нет, чем да. А вот комбинировать два простых индекса умеет, так что может имеет смысл обойтись без составного вообще. http://www.postgresql.org/docs/9.0/inte ... scans.html http://www.postgresql.org/docs/9.0/inte ... olumn.html
Если в запросе не указано значение DocNo, то нужно, ибо, если первая часть составного индекса неизвестна, использовать вторую невозможно. По крайней мере в мускуле это так.
А, про уникальный упустил. Да, лучше всего делать отдельно по DocDate еще один - правая часть составного если и будет использована, но весьма неэффективно.