Патч UniqueKeys для PostgreSQL предлагает научить планировщик распознавать случаи, когда строки запроса уже гарантированно уникальны. Сейчас он не всегда может это определить и выполняет лишнюю работу: повторно проверяет данные на дубликаты, хотя в этом нет необходимости, или упускает более дешеый план выполнения. Механизм UniqueKeys позволяет прослеживать уникальность данных через сложные соединения и подзапросы, чтобы исключать ненужные операции DISTINCT и GROUP BY и точнее оценивать стоимость запросов. В Tantor Postgres этот механизм уже реализован, а патч предложен для рассмотрения сообществом PostgreSQL в рамках CommitFest. Читать далее
Если планировщик знает, что строки какого-то отношения гарантированно не повторяются, он может строить более дешёвые планы, например:
- выбросить DISTINCT илиGROUP BY , которые ничего не делают;
- пометить соединение как Inner Unique : внутренней стороне соответствует не больше одной строки на каждую внешнюю; executor может закончить поиск совпадения по условиям соеднинения, а планировщик использует эту гарантию при оценке стоимости;
- не делать правую сторону IN (SELECT ...) уникальной перед соединением, если она уже уникальна.