Как Common Table Expressions превращает язык SQL в настоящий язык программирования
Common Table Expressions (CTE) - это элемент стандарта SQL, который реализован в СУБД PostgreSQL с некоторыми дополнениями.
Во-первых, рекурсивные CTE делают язык SQL Тьюринг-полным.
Во-вторых, CTE теоретически позволяют решать на этом языке любые программистские задачи.
Как с этим обстоят дела на практике и какую пользу прикладной программист может извлечь из CTE, будет рассказано в этом докладе.
Слайды
Другие доклады
-
Михаил Жилин Postgres Professional Инженер
Способы сжатия данных в PostgreSQL
В связи с очевидной необходимостью рационального использования как собственного «железа», так и облачных ресурсов, тема сжатия данных становится особенно актуальной. В рамках доклада Михаил предоставит краткий обзор различных механизмов сжатия данных, применяемых в PostgreSQL.
Во-первых, мы поговорим о том, когда и почему сжатие данных в СУБД может быть полезно.
Во-вторых, ознакомимся со встроенными механизмами сжатия данных в PostgreSQL.
В-третьих, будут рассмотрены расширенные возможности сжатия данных для этой СУБД.
В-четвёртых, сравним преимущества всех обсуждаемых вариантов сжатия данных и продемонстрируем несколько примеров их применения в реальной жизни.
-
Олег Бартунов Postgres Professional генеральный директор
NEW TOAST in TOWN. ONE TOAST FITS ALL
Исторически одной из проблем PostgreSQL является технология TOAST (The Oversized-Attribute Storage Technique, или методика хранения сверхбольших атрибутов), которая была разработана задолго до появления современных типов данных. У вновь добавленных типов, к которым относится и JSONB, есть внутренняя структура. TOAST не учитывает её и работает с JSONB как с «чёрным ящиком», что крайне неэффективно. Как при простом доступе по ключу, так и при обновлении JSONB возникают большие накладные расходы.
В этом докладе мы расскажем про нашу работу по улучшению функционирования TOAST. Благодаря нашим патчам, TOAST сможет определять тип данных и работать с ним наиболее оптимально в зависимости от его особенностей. Большие колонки будут «нарезаться» и сжиматься так, чтобы объём хранимых данных был меньше, а скорость работы с ними - выше. В случае с JSONB мы получили серьёзный выигрыш по производительности, о котором рассказали на ряде конференций в прошлом году.
Pluggable TOAST позволит реализовать все наши улучшения в виде расширений. Мы приведём несколько несколько примеров его использования — стрим bytea в PostgreSQL со скоростью диска и JSONB. Мы планируем, что Pluggable TOAST будет принят в ядро PostgreSQL 16, и наши примеры с некоторыми доработками станут доступны всему сообществу в качестве расширений.
Также Олег расскажет, почему изменилась тема выступления с первоначальной SQL/JSON, и вручит приз тому, кто догадается, какая песня вдохновила его придумать название для текущего доклада.