![Markus Nullmeier Markus Nullmeier](/media//2017/01/26/MarkusNullmeier_900.jpg.180x180.jpg)
Оптимизация запросов к данным типа “множество” с помощью индексов GIN, GiST, и пользовательских расширений для индексирования
Очевидно, что множества удобно использовать в различных типах приложений. Хотя в PostgreSQL и нет встроенного типа для множеств, до некоторой степени их можно смоделировать с помощью встроенных типов “массив” и “JSONB”. Кроме того, возможность ускорения запросов с операциями вхождения уже встроена в реализацию индексов GIN.
После краткого обзора существующей функциональности, мы рассмотрим, как добавление пользовательских типов “множество” и, в частности, модификация кода на С ("классы операторов") для индексов GIN и GiST, может повысить производительность.
Слайды
Другие доклады
-
Иван Фролков Postgres Professional инженер-консультант
Отчуждаемые таблицы в PostgresPro
Большие потоки данных нередко могут создавать проблемы даже с самой их загрузкой в БД - кроме загрузки собственно данных необходимо создавать для них индексы, проводить после загрузки VACUUM как для корректной работы Index-only scans и т.п. О том, как можно если не избежать этих проблем, то, по крайней мере, в значительной степени избежать их и посвящен этот доклад.
ВИДЕО
-
Roland Sonnenschein Hesotech GmbH CEO
Оптимизация PostgreSQL для реальных промышленных систем
Зачастую по требованию клиента или даже закона необходимо документировать специфику производства продукта в целом и его частей. Этот доклад посвящен теме автоматической генерации и хранения соответствующей административной информации. К административной информации относятся такие данные как номер поставки, артикул, серийный номер, дата изготовления. Такие данные часто обмениваются с ERP-системами.
Разработку таких приложений можно значительно упростить, если использовать NoSQL-функциональность PostgreSQL, особенно json и jsonb.
-
Михаил Тюрин ИТ предприниматель предприниматель
Лок, лок – дедлок!
< Query failed: ERROR: deadlock detected < DETAIL: Process 17371 waits for ShareLock on transaction 102733872; blocked by process 10414. < Process 10414 waits for ShareLock on transaction 102733874; blocked by process 17371.
Подобные "неприятные" сообщения от сервера могут серьезно озадачить разработчика. При работе с блокировками, в частности, и с транзакциями в целом, следует учитывать особенности реализации клиентских библиотек, которые могут вызывать описанное выше исключение.
В кратком докладе-сообщении будет объяснена механика взаимодействия блокировок, приводящая к ситуации дедлока; приведены ссылки на документацию; разобрана техника "обхода" данной проблемы конкурентной работы с данными; показаны обобщенные приемы из практики.
-
Петр Грибанов 1С Технологический евангелист
PostgreSQL в 1С:Предприятии и в облачной системе 1С:Fresh
"1С:Предприятие" - самая популярная в России/СНГ платформа разработки бизнес-приложений, которая уже более 10 лет поддерживает PostgreSQL. Фирма 1С использует PostgreSQL в своём облачном сервисе 1С:Fresh. В этом докладе мы поделимся опытом и наблюдениями, возникшими в ходе эксплуатации этого сервиса, и обсудим интересные случаи и особенности тандема 1С+Postgres.