Динамическая компиляция SQL-запросов в PostgreSQL с использованием LLVM JIT
В данный момент в PostgreSQL для исполнения SQL-запросов применяется интерпретатор, реализующий модель итераторов (Volcano-модель). В то же время можно добиться существенного ускорения, выполняя динамическую компиляцию запроса «на лету». В этом случае можно генерировать код, специализированный для конкретного SQL-запроса, а также применять компиляторные оптимизации, учитывая, что во время выполнения уже известна структура используемых таблиц и типы данных. Такой подход особенно актуален для сложных запросов, скорость выполнения которых ограничена производительностью процессора.
Слайды
Другие доклады
-
Олег Бартунов Postgres Professional генеральный директор
JSON в PostgreSQL: дорожная карта
В прошлом году был принят стандарт ISO/IEC 9075-2:2016, в котором наконец-то был стандартизирован синтаксис и семантика JSON и операций над ним в языке SQL. В докладе будет рассказано о требованиях этого стандарта и чем они отличаются от реализации JSON/JSONB в PostgreSQL, в частности, о JSON Path (аналог XPath для XML), о SQL/JSON функциях и о том, что мы планируем сделать в PostgreSQL для соответствия стандарту.
ВИДЕО
-
Markus Nullmeier University of Heidelberg software developer
Оптимизация запросов к данным типа “множество” с помощью индексов GIN, GiST, и пользовательских расширений для индексирования
Очевидно, что множества удобно использовать в различных типах приложений. Хотя в PostgreSQL и нет встроенного типа для множеств, до некоторой степени их можно смоделировать с помощью встроенных типов “массив” и “JSONB”. Кроме того, возможность ускорения запросов с операциями вхождения уже встроена в реализацию индексов GIN.
После краткого обзора существующей функциональности, мы рассмотрим, как добавление пользовательских типов “множество” и, в частности, модификация кода на С ("классы операторов") для индексов GIN и GiST, может повысить производительность.
-
Дмитрий Вагин Avito Lead Engineer
Мониторинг PostgreSQL в Авито, с примерами
Небольшой доклад о том как Avito собирает и мониторит нагрузку на базы данных. Отправка метрик из хранимых процедур в Graphite. Сбор метрик pg_stat* и отображение их в Grafana. Примеры из жизни.
ВИДЕО
-
Jasonysli Tencent Chief PostgreSQL Architect of Tencent Cloud Service
Как Tenсent использует Postgres XC в платежной системе WeChat
Китайская компания Tencent - одна из крупнейших в мире компаний в области социальных сетей. В этом докладе рассматривается, как Tencent изменила программный код Postgres XC, чтобы удовлетворить требованиям своей платежной системы