title

text

Мирослав Шедиви
Мирослав Шедиви solute GmbH Senior Software Developer
16:30 04 февраля
90 мин

Асинхронный Python и PostgreSQL с использованием asyncpg

Возможно, Python не самый быстрый язык программирования на CPU, но быстрая и простая разработка на нем экономит массу усилий того, кто находится между креслом и клавиатурой. Поскольку программные клиенты базы данных большую часть времени находятся в ожидании отклика от сервера базы данных, аснихронная функциональность Python, ставшая доступной в последних версиях (3.5+), может оказаться полезной для значительной оптимизации скорости работы приложения за счет того, что время подготовки ответа сервером может быть использовано приложением для работы над другими задачами. Асинхронный интерфейс между Python и PostgreSQL называется "asyncpg". В ходе мастер-класса я разберу работу с данной библиотекой и напишу короткое приложение, использую некоторые полезные свойства библиотеки.

Видео

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

  • Павел Лузанов
    Павел Лузанов Postgres Professional Руководитель образовательных программ
    22 мин

    Обучение и сертификация: что нового и ближайшие планы

    В сентябре 2015 года компания "Постгрес Профессиональный" выпустила первый учебный курс "DBA1.Администрирование PostgreSQL. Базовый курс". Курс основывался на актуальной тогда версии PostgreSQL 9.4. С тех пор вышло несколько новых курсов, да и СУБД PostgreSQL не стояла на месте.

    В докладе будет представлена текущая линейка курсов для администраторов и разработчиков приложений. А также планы по развитию на ближайшее будущее, включая сертификацию специалистов.

  • Алексей Фадеев
    Алексей Фадеев Sibedge Старший разработчик .NET, евангелист Postgres.
    45 мин

    ORM: как писать запросы и не сводить с ума СУБД

    Многие специалисты, обслуживающие СУБД не любят эти три буквы - ORM, потому что не раз видели сгенерированные многоэтажные запросы для простейших операций. Однако, практика показывает, что источник проблемы - не ORM, а разработчики, не умеющие ими пользоваться. В этом докладе я расскажу основные принципы, как писать код для ORM, генерирующий «хорошие» запросы, а также покажу «плохие» примеры кода, и что из них получается на выходе. Основные идеи – при написании кода мыслить в SQL, научиться заранее видеть, какой запрос будет сгенерирован. Но даже обретя такой навык нужно всегда проверять выходной SQL для сложных запросов. Приведу конкретный пример, когда незначительное изменение в ORM-логике меняет объём выходного SQL в десятки(!) раз. Расскажу о дополнительных инструментах и хитростях. А именно – отключение трекинга, конструкция Include, разный синтаксис для JOIN, как получить больше данных за меньшее число запросов, как эффективно писать запросы с группировкой, и зачем нужны проекции. Не обойду стороной и случаи, когда эффективно решить задачу средствами ORM не получается (например, запросы с рекурсией). Кроме SELECT-запросов немного расскажу о средствах Batch-Update/Delete, позволяющих обновлять и удалять данные средствами ORM без загрузки на клиент. Несколько слов будет и о вставке – как заставить ORM быстро вставлять большие объёмы данных через Multi-Insert и COPY. Будет упомянуто и о поддержке в ORM специфичных для PostgreSQL типов данных – массивов, hstore и jsonb. Может возникнуть вопрос – а есть ли вообще смысл использовать ORM, раз нужно столькому научиться. Преимущества их использования есть, и об этом тоже будет сказано. Все примеры будут на технологии Entity Framework для платформ .Net Core и .Net Framework на языке C#. Для Hibernate/NHibernate могут быть отличия в некоторых тонкостях, но основные принципы те же, поэтому доклад будет полезен разработчикам, использующим различные технологии.

  • Степан Данилов
    Степан Данилов РТ Лабс Разработчик
    22 мин

    Оптимизация оптимизированного и не очень

    Хочу поделиться опытом оптимизации запросов PostgreSQL для Региональной Медицинской Информационной Системы (РМИС). Опыт работы с PostgreSQL и с этой системой - более 6 лет.

  • Артемий Рябинков
    Артемий Рябинков Avito Software Engineer
    22 мин

    Практики, особенности и нюансы при работе с Postgres в Go

    В докладе расскажу о практиках работы с Postgres в сервисах на Go. Поговорим о преимуществах и недостатках основных инструментов, которые принято использовать при работе с Postgres в Go. Конечно, коснёмся нюансов, которые нужно учитывать, когда ваши сервисы работают внутри Kubernetes облака. Также расскажу об опыте Avito в предоставлении базы данных разработчикам продукта. Доклад будет интересен разработчикам, которые хотят избежать проблем при работе с Postgres и полезен DBA, которые хотят узнать с какими трудностями сталкиваются клиенты их базы данных.