Обновить
151.36

PostgreSQL *

Свободная объектно-реляционная СУБД

Сначала показывать
Порог рейтинга
Уровень сложности

Jsonb и gin, ошибки планировщика на старых PostgreSQL

Уровень сложностиСложный
Время на прочтение9 мин
Охват и читатели5.6K

За всё время работы с веб программистами внезапные и катастрофичные провалы производительности в базах, на сколько я помню, всегда имели одну и ту же природу. Производительность базы внезапно падала настолько, что можно было считать полным отказом сервиса в оказании услуг. При этом никакие изменения в базу не вносились и причины такого внезапного и катастрофичного падения производительности понятны не были.

Читать далее

Как сделать свой сервер мобильному разработчику, если он никогда такого не делал?

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели17K

У меня ушел один месяц на создание своего сервера. Две недели ушло на понимание функционала и сборку прототипа. Одну неделю я писал Ktor-сервер на Kotlin и визуал в приложении на Flutter. И еще одну неделю тестировал. И я хочу, чтобы вы сэкономили две недели, когда решите создать ваш бэкэнд.

Читать далее

Postgresso №9(58)

Время на прочтение12 мин
Охват и читатели5K

Microsoft

PostgreSQL 16

Наконец, официально вышел релиз PostgreSQL 16. Мы регулярно писали о новом в бетах и релиз-кандидатах, поэтому подробно говорить об официальном нет, кажется, особой необходимости: с тех пор ничего принципиального не ушло и, тем более, не пришло.

На сайте выделяют такие главные преимущества релиза, вот некоторые:

улучшение производительности: оптимизатор научился распараллеливать FULL и RIGHT JOIN, ускорились оконные функции, появилась балансировка нагрузки.

расширение возможностей логической репликации: репликация с реплики, распараллеливание, новая роль pg_create_subscription,

для разработчиков: новые (вернувшиеся "старые") возможности работы с SQL/JSON, улучшения в правилах сортировки, команда \bind в psql для подготовленных запросов, улучшения в правилах сортировки,

мониторингpg_stat_io, новое поле в pg_stat_all_tables,

доступ и безопасность: появилась возможность задавать дополнительные файлы в include.

Как вы, может быть, заметили, ссылки ведут на РУССКУЮ ДОКУМЕНТАЦИЮ к PostgreSQL, которая только что появилась на сайте Postgres Professional.

Читать далее

Немного про SLA для DWH на PostgreSQL

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели5.3K

В некоторых случаях в DWH приходится периодическим заданием очищать таблицу и заполнять ее новыми актуальными данными. Например, раз в сутки. Если в таблице десятки или сотни тысяч строк, то это не проблема. А вот если миллиард - то уже точно проблема. Потому что каким бы способом ее не заполнять, но в течении достаточно длительного времени данные из этой таблицы не будут доступны пользователям. А если система должна быть доступна 24/7, то такие процессы начинают заметно ухудшать SLA.

Читать далее

Автоматизация разработки с помощью подхода DB-first

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели6K

Интеграция с БД - привычно сложная и хрупкая часть большинства кодобаз, постоянно отвлекающая внимание разработчиков и раздувающая сроки. Какой бы хайпующий фреймворк вы ни пробовали, вы неизбежно обнаруживаете себя борющимся с одними и теми же симптомами, но ощущение того, что проблема могла бы решаться проще не покидает вас. Знакомо?

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

Читать далее

Карта на GitHub Pages без подписок и СМС: где в Берлине лучше не жить

Время на прочтение9 мин
Охват и читатели6.3K

Найти жилье для покупки и аренды — непростая задача. Многие факторы становятся неожиданностью после оплаты и подписания договора, когда вы переезжаете на новое место. И сколько бы вы ни платили риелтору, это не гарантирует, что он будет защищать в первую очередь ваши интересы. Попробуем взять в руки пульт управления жизнью и самостоятельно проанализировать, где в Берлине и окрестностях жить вам точно не захочется.

Основная ценность этой публикации в новой визуализации. Теперь интерактивная карта доступна в браузере и работает на смартфонах!

Читать далее

Небольшой тест нескольких БД при работе с многими таблицами

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.9K

Я новичок в работе с базами данных и для их изучения (а заодно для изучения Питона) начал небольшой пет-проект. В процессе оказалось, что в моей многопользовательской системе запросы к БД всегда касаются только одного пользователя. «Отлично!» подумал я, «раздам каждому пользователю по табличке и сэкономлю ресурсы сервера на индексации!». Конечно сначала я почитал литературу и подобных решений в ней не нашел. Потом сходил на один из популярных ресурсов и там мне объяснили, что так делать нельзя. Но почему – никто объяснить не смог (или возможно не захотел). Поэтому я решил сделать небольшой тест на самых популярных БД – проверить что будет на самом деле.

Читать далее

PostgreSQL и временные таблицы

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели58K

Мы много лет уже используем в качестве основной базы данных PostgreSQL. За это время он зарекомендовал себя быстрой и надежной СУБД. Однако, есть в PostgreSQL одна проблема, с которой приходится сталкиваться достаточно часто. К сожалению, реализация логики временных таблиц в нем имеет ряд недостатков, которые отрицательно сказываются на производительности системы.

Одним из свидетельств наличия проблемы является то, что для временных таблиц в Postgres Pro была добавлена специальная функция fasttrun, а в Postgres Pro Enterprise существенно доработана работа с ними (см. пункт 4). 

Наиболее активно временные таблицы используют платформы, в которых разработчик не работает напрямую с базой данных, а таблицы и запросы генерируются непосредственно самой платформой. В частности, к ним относится платформа или ее открытый и бесплатный аналог - платформа lsFusion.

В этой статье я опишу почему приходится использовать временные таблицы, в чем суть проблемы, и как улучшить производительность путем настроек операционной системы и PostgreSQL.

Читать далее

Я бы не жил на побережье Черного моря Краснодарского края в этих местах…

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели13K

Про городской округ Сочи я высказывал свое мнение в "Я бы не жил в Сочи в этих местах…"

В этой статье найду места на оставшейся части побережья Краснодарского края на основе данных OpenStreetMap где могут быть проблемы из-за близости к жилью не самых комфортных мест для уютной жизни на побережье Черного Моря. Показать результаты работы моей модели для Туапсе просили еще в комментариях к первой статье "Где бы вы точно не жили и не остановились даже на время, если бы знали и выбирали на основе фактов".

Читать далее

Исследование производительности 1С на СУБД: Tantor, Postgres 1С, PostgresPro, MS SQL

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели16K

Команда EFSOL Oblako продолжает серию тестов производительности 1С. Подобные тесты мы проводим уже несколько лет и на этот раз решили сравнить актуальные СУБД для работы с 1С:Предприятие 8.3, включая продукт российского разработчика - Tantor СУБД.

В данном исследовании для проведения нагрузочных тестов в связке с 1С использовались не только разные СУБД, но и разные операционные системы, подробнее о тестовом стенде ниже.

Читать далее

Где в Москве жить «неплохо»

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели32K

В одной прошлых публикации получил массу полезных коментариев от читателей. Среди них просили для Москвы кроме "плохих" районов было бы интересно увидеть и хорошие.

Честно скажу, что определить какие хорошие непросто. Ведь у каждого свое понятие о том что такое хорошо и нужен доступ к данным, которого у нас нет. Поэтому давайте посмотрим где жить "неплохо". Не жить рядом с тем, что влияет на качество воздуха, уровень шума, ежедневное memento mori, близость к промышленности, безопасность. Найдем группы домов в Москве в пределах МКАД, отдаленные на 150м от перечисленных факторов. Если живете в Москве, то удивитесь - вашего дома скорее всего не будет на этой карте

Читать далее

Где бы вы точно не жили и не остановились даже на время, если бы знали и выбирали на основе фактов

Уровень сложностиСредний
Время на прочтение31 мин
Охват и читатели22K

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

Если из окна видна труба завода из которой валит дым "кислотного" цвета, под другим окном оживленная автотрасса/железная дорога и летом не открыть окно из-за гари и громких сигналов транспорта, рядом с этим прелестным пейзажем видны дымок от крематория и кладбище. Когда решите выйти на балкон летом, то комары напомнят что совсем рядом есть заболоченный участок. Поздравляю, вы оказались в том самом месте!!!

Что общего во всех этих факторах, кроме того что я сгустил краски StableDiffusion? В описаном примере для многих людей есть не только экологическая, но психологически дискомфортная составляющая. В студенчестве, в части диплома, связанной с экологией, были расчеты уровня шума в жилых помещениях от трассы/индустриальных объектов. Главный параметр был - расстояние по прямой от жилья.

Читать далее

Установка PostgresPRO Standart 15 на Astra Linux Common Edition

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели35K

Astra Linux Common Edition - это мощная операционная система, но когда дело доходит до установки свежей версии PostgrePRO Standart 15, она может представить настоящий вызов. В отличие от Astra Linux Special Edition, где достаточно перейти на официальный сайт, следовать инструкции и наслаждаться работой с последней версией PostgreSQL, Common Edition требует большего терпения и умения разобраться в хаосе информации.

Давайте в этой статье рассмотрим, как установить PostgrePRO Standart 15 на Astra Linux Common Edition. Прежде чем мы начнем, давайте погрузимся в мир Common Edition и поймем, какие трудности возникают при установке PostgreSQL на этой версии ОС. Несмотря на то, что Common Edition может вызвать некоторые неудобства и недостаток информации, мы с вами разберемся в этом хаосе и сделаем вашу установку PostgreSQL на Astra Linux Common Edition простой и эффективной!

Читать далее

Ближайшие события

Kysely.js типизированный sql builder

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели7.2K

Kysely.js – это библиотека, позволяющая писать типизированные SQL запросы. Библиотека делает работу с SQL в вашем проекте более безопасной, избавляя от таких ошибок как опечатки в названиях колонок или таблиц и неправильное использование SQL операторов в коде (код не скомпилируется). Ко всему прочему она делает работу с SQL более удобной, предоставляя при написании запросов автодополнения для таблиц, колонок, алиасов и других сущностей. Kysely имеет незначительный слой абстракции над SQL для того чтобы можно было пользоваться всей мощью SQL и при этом не изучать множество дополнительных сущностей. Библиотека поддерживает MySQL, PostgreSQL, SQLite, PlanetScale, D3, SurrealDB и другие.

Теперь погрузимся в наш кисель ?.

Читать далее

2.0.Виртуализируем базы данных в NixOS

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели2.2K

Всем привет. Предлагаю сделать передышку и отойти от нашего хранилища бэкапов и рассмотрим еще возможности инструментов Nix. Мы поработаем с Postgresql,Mysql,Qemu и открытыми данными

Читать далее

Вы вообще нормальн… нормализованный??

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели6.1K

Сказ о том, нормализация данных завела производительность many-to-many в postgres в тупик, как это зло было повержено, и как тут нам помог Clickhouse.

Порой бывают ситуации, когда стоит посмотреть на задачу будто с нуля и отбросить предыдущий опыт и best practices. Подумать на несколько шагов вперёд. И лучше до того, когда уже вышли из SLA или нахватали негатива от клиентов или бизнеса. Об одной такой задаче и стандартном решении, которое пришлось больно редизайнить, хочется и поделиться с сообществом в этой статье.

Читать далее

SQL HowTo: ближайший общий предок в дереве (LCA)

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели4.9K

В иерархических структурах регулярно возникает потребность определить ближайшего общего предка в дереве, он же наименьший общий предок (Lowest (Least) Common Ancestor).

Правда, "классические" алгоритмы для решения этой задачи работают лишь с парой узлов (раз, два, три, четыре), а мы, используя всю мощь PostgreSQL, будем решать задачу сразу для нескольких узлов.

Читать далее

Postgresso №8 (57)

Время на прочтение11 мин
Охват и читатели3.4K

Между выходом этого обзора и предыдущего успели выйти бета3 и первый релиз-кандидат.

В PostgreSQL 16 Beta 3 закрыты 2 уязвимости, они касаются расширений и MERGE. В сообщении есть важные замечания для тех, кто использует BRIN-индексы для запросов, затрагивающих NULL-величины.

А вот это почти детективный сюжет: PostgreSQL: CVE-2020-21469 is not a security vulnerability.

Читать далее

Выбираем СУБД по новым правилам — в какую сторону смотреть

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели21K

Все говорят: «импортозамещение», а ты купи слона! Postgres PRO Certified, Postgres PRO, 1C PostgreSQL – какого слона купить?

Читать далее

Способ залезть в «кишочки» операционной системы, Docker из PostgreSQL с помощью SQL

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели9K

Если у вас возникала идея получить доступ к метрикам операционной системы и оборудования компьютера из PostgreSQL, то теперь у вас есть инструмент для этого. Я не претендую на его зрелость и готовность к эксплуатации. Это просто прототип, позволяющий получить результаты запросов из osquery в PostgreSQL в виде табличных данных/JSON. Дальше с которыми можете использовать все привычные средства этой базы данных.

Читать далее

Вклад авторов