TGViewer
tl;dr data tl;dr data @tldr_data · 153 subscribers
Post #104 93
pg_kpart — это расширение для PostgreSQL, которое блокирует выполнение запросов к партиционированным таблицам, если они пытаются просканировать все партиции без использования условия по ключу партиционирования. Оно защищает от случайных полных сканирований, возникающих из-за отсутствующих условий WHERE или JOIN по ключу партиционирования.

Если вы работаете DBA, то наверняка сталкивались с ситуацией, когда запрос обращается к партиционированной таблице, но не использует ключ партиционирования. На таблицах с сотнями миллионов или миллиардами строк это превращается в настоящую катастрофу: PostgreSQL вынужден сканировать все партиции, подсистема ввода-вывода сервера перегружается, а производительность падает для всех пользователей, подключённых к базе.

Принцип работы расширения очень простой: если запрос к защищённой партиционированной таблице не позволяет исключить ни одну партицию (partition pruning), его выполнение запрещается. Вместо масштабной нагрузки на сервер разработчик получает понятную ошибку и вынужден переписать запрос так, чтобы он фильтровал данные по ключу партиционирования — именно под такой сценарий и создавались партиционированные таблицы.

По сути, pg_kpart превращает рекомендацию «всегда фильтруйте по ключу партиционирования» из негласного правила, которое легко забыть, в жёсткое ограничение, гарантированно контролируемое самой базой данных.

Расширение поддерживает режим аудита для безопасного внедрения, механизмы белых и чёрных списков для точечного применения только к важным таблицам, а также использует отдельный код SQLSTATE, позволяющий приложениям корректно обрабатывать подобные ошибки.

Если в вашей инфраструктуре есть крупные партиционированные таблицы и вы не хотите зависеть от следующего запроса, в котором кто-то забудет указать ключ партиционирования, pg_kpart может оказаться очень полезным инструментом.

@tldr_data
PostgreSQL News pg_kpart version 1.0 Bangkok, Thailand - June 12, 2026 ## pg_kpart - Reject queries that scan all partitions without using the partition key …
  • 🔥 1
More from @tldr_data
  1. Sep 18, 2026SLayer Спросите агента о выручке дважды — и он дважды напишет два никак не связанных между…
  2. Sep 13, 2026OpenAI запустила Data agent в ChatGPT Work — агента для работы с корпоративными данными. О…
  3. Sep 12, 2026LLMSQLQueryOperator В Airflow появился новый декоратор task.llm_sql, который генерирует SQ…
  4. Sep 11, 2026walshadow walshadow реплицирует данные из PostgreSQL в ClickHouse из физического WAL, вклю…
  5. Sep 9, 2026HydraDB - fast graph database on object storage HydraDB превращает графовую базу данных в…
  6. Sep 8, 2026Make analytics context usable by agents ktx — open-source context layer for data agents, к…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →