title

text

Алексей Фадеев
Алексей Фадеев
11:05 03 апреля
22 мин

ORM LinqToDb: используем возможности Postgres по максимуму

ORM-библиотеки широко используются при разработке бэкенда – примем это как данность. ORM-библиотеки совершенствуются, разработчики учатся на своих и чужих ошибках, и многие научились писать код для ORM, генерирующий вполне оптимальные запросы для типовых операций. Но есть ещё одна проблема ORM – ограниченность инструментов. Особенно это актуально для Postgres, имеющего массу операторов и конструкций (как в ядре, так и в расширениях), выходящих за рамки стандарта SQL.

ORM-библиотека LinqToDb имеет важную особенность: она позволяет очень просто (буквально в одну строку) писать расширения, реализующие любой SQL-оператор или конструкцию. Полнотекстовый поиск, KNN, CTE (в том числе рекурсивные), работа с массивами и jsonb, array_agg и jsonb_object_agg, табличные функции и LATERAL JOIN – всё это без труда можно использовать в ORM, что я и продемонстрирую в данном докладе!

слайды

Видео

Другие доклады

  • Иван Чувашов
    Иван Чувашов
    45 мин

    Практические примеры по оптимизации запросов в PostgeSQL

    Я думаю, что каждый администратор баз данных в своей работе сталкиваемся с "тяжелыми" запросами. И возникает вопрос, а можно ли вообще ускорить работу этого запроса? Может быть, даже и оптимизировать такие запросы невозможно? Или время на переработку этого запроса будет существенно больше, чем выигрыш от производительности этого запроса. В своем докладе я рассмотрю несколько подходов к ускорению запросов и на практических примерах покажу оптимизации, которые использую в своей работе.

  • Антон Дорошкевич
    Антон Дорошкевич
    45 мин

    Резервное копирование и восстановление PostgreSQL

    Резервное копирование - один из самых обширных вопросов, который возникает после перехода на PostgreSQL. "Из коробки" PostgreSQL умеет делать два варианта резервного копирования и восстановления - это dump/restore pg_basebackup. Оба варианта имеют свои тонкости и особенности кардинально отличающие систему резервного копирования и восстановления от MS SQL. Так же в мире PostgreSQL сейчас активно развивается утилита pg_probackup, которая имеет на борту свой набор вариантов резервного копирования и восстановления со своими тонкостями и особенностями. Каждый вариант чем-то хорош, а чем-то не устраивает в разных сценариях. В докладе хочу рассказать про тонкости, особенности и лучшие практики на примере больших баз, сотен небольших баз на одном кластере PostgreSQL и просто маленьких инсталляций.

  • Иван Фролков
    Иван Фролков
    45 мин

    Новые версии UUID

    Генерация первичных ключей - старая задача, довольно неплохо решаемая последовательностям, но, к сожалению, не идеально. Возникают проблемы с распределенной генерацией, действительной уникальностью и предсказуемостью. UUID изначально почему-то не предполагался для использования в качестве ключа СУБД, но новые версии (6,7 и 8) позволяют довольно удобно использовать их в качестве как для синтетических, так и для естественных ключей.

  • Bruce Momjian
    Bruce Momjian
    45 мин

    Beyond Joins and Indexes

    My presentation "Explaining the Postgres Query Optimizer" covers the details of query optimization, optimizer statistics, joins, and indexes. This talk covers 40 other operations the optimizer can choose to handle complex queries, large data sets, and to enhance performance. These include merge append, gather, memoize, and hash aggregate. It explains their purpose and shows queries that can generate these operations.

    This is a new talk; draft slides are at https://momjian.us/main/writings/pgsql/beyond.pdf