Мы подготовили патч, который позволяет планировщику отслеживать уникальность строк на всех этапах построения плана — от базовых таблиц до сложных соединений и подзапросов. Зная, какие данные уже гарантированно уникальны, планировщик может исключать лишние DISTINCT и GROUP BY, пропускать ненужные проверки при соединениях и выбирать более эффективные планы выполнения.
Это позволяет сократить избыточную обработку данных и ускорить выполнение сложных запросов без переписывания SQL и изменения кода приложений. Особенно полезно для систем, в которых SQL генерируется автоматически: например, ORM и BI-инструменты могут добавлять операции устранения дубликатов, которые на самом деле не нужны.
В Tantor Postgres механизм UniqueKeys уже реализован в пуле оптимизаций, которые в совокупности делают нашу СУБД гораздо быстрее и лучше. Сейчас мы предлагаем патч сообществу PostgreSQL — он находится на ревью в рамках CommitFest.
📌 Читать на Хабре
А пока этот патч ревьюится, читайте и о других наших патчах для PostgreSQL:
▪️Почему COALESCE ломает план PostgreSQL и как научить планировщик считать его селективность?
▪️Запросы с ANY: когда PostgreSQL дольше планирует, чем выполняет
Tantor в Tg и VK