Обновить
136.5

PostgreSQL *

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

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

Как прошёл Java Rock Stars Meetup в сентябре (и чего ожидать в декабре)

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров407

25 сентября в Москве прошёл Java Rock Stars Meetup, в котором было всё: доклады, холивары о будущем Spring в России и много нетворкинга.

Пока готовился обзор прошедшего митапа, мы уже успели организовать новый и заключительный в этом году Java Rock Stars Meetup, который пройдёт 2 декабря в Москве в привычном месте — лофте Casa Picassa.

Регистрируйтесь на митап по ссылке.

А пока присоединяйтесь к нашему ТГ-каналу и чату Java Rock Stars Meetup, чтобы быть в курсе новостей митапа.

Читать далее

Новости

pg_expecto + Демобаза 2.0: тестовый стенд для экспериментов с СУБД PostgreSQL

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров1.1K

 Нагрузочное тестирование — это не просто «нагрузить систему до падения». Это точный инструмент для поиска причинно-следственных связей. В этой статье описан пример использования связки из Демобазы 2.0 и комплекса pg_expecto, чтобы провести контролируемый эксперимент. Изменим один SQL-запрос, запустим тест и проанализируем, как это изменение отразилось на производительности СУБД и показателях инфраструктуры.

ℹ️ Демобаза 2.0

Демобаза 2.0 для PostgreSQL / Хабр

ℹ️ Новый инструмент с открытым исходным кодом для статистического анализа, нагрузочного тестирования и построения отчетов доступен в репозитории GitFlic и GitHub

kznalp/PG_EXPECTO: Комплекс статистического анализа производительности СУБД PostgreSQL

pg-expecto/pg_expecto: Комплекс pg_expecto для статистического анализа производительности и нагрузочного тестирования СУБД PostgreSQL

Читать далее

Нейросеть против PostgreSQL: системные ошибки AI в прогнозировании производительности под нагрузкой

Уровень сложностиСложный
Время на прочтение3 мин
Количество просмотров1.2K

Использование нейросетей для оптимизации баз данных кажется перспективным направлением, но реальная эффективность таких систем требует тщательной проверки. В данном исследовании проанализирована способность нейросетевой модели точно прогнозировать производительность СУБД PostgreSQL в условиях экстремальной параллельной нагрузки. Результаты демонстрируют систематические ошибки AI, связанные с неспособностью учесть динамические аспекты работы СУБД.

ℹ️ Новый инструмент с открытым исходным кодом для статистического анализа, нагрузочного тестирования и построения отчетов доступен в репозитории GitFlic и GitHub

kznalp/PG_EXPECTO: Комплекс статистического анализа производительности СУБД PostgreSQL

pg-expecto/pg_expecto: Комплекс pg_expecto для статистического анализа производительности и нагрузочного тестирования СУБД PostgreSQL

Читать далее

PostgreSQL Antipatterns: отказ от агрегатных функций = кратное ускорение

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

Иногда в архиве нашего сервиса анализа планов запросов к PostgreSQL встречаются примеры не очень эффективных, мягко говоря, запросов.

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

Читать далее

Как мы постепенно идём к «умному» центру администрирования СУБД

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

Что общего у массового применения конфигураций, встроенной поддержки OpenTelemetry и управления HA-кластерами в пару кликов? Всё это — части пазла, который мы собираем, чтобы сделать администрирование PostgreSQL по-настоящему удобным и безопасным. Выход версии Postgres Pro Enterprise Manager (PPEM) 2.3 стал важной вехой в развитии нашего графического интерфейса. Мы добавили поддержку пользовательских пресетов, переработали систему алертинга и усилили RBAC-модель управления доступом. Разбираем ключевые нововведения релиза, которые помогут навести порядок в зоопарке конфигураций и спать спокойно, зная, что система сама предупредит о проблемах.

Читать далее

БД без боли: моя шпаргалка для собесов в Java. Часть 4

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

Всем привет!


Я Senior Java Developer в банке, и за эти годы мне довелось пройти немало собеседований. Где-то было спокойно, где-то — как в допросной, с каверзными вопросами, странными задачами и вечным «а почему так, а не иначе?». В процессе я собрал целую коллекцию тем, которые всплывают снова и снова, особенно когда дело касается баз данных.

Сегодня хочу поделиться этим опытом и разобрать вопросы, которые чаще всего задают именно по SQL-базам.

Читать далее

Как ускорить массовую вставку данных в PostgreSQL при использовании Spring

Уровень сложностиСложный
Время на прочтение16 мин
Количество просмотров2.9K

Меня зовут Дмитрий Фатов, я разработчик в Газпромбанке — вместе с командой создаю платформу G2, на которой мы разрабатываем свои решения. Одно из решений — SaaS, система, в которой есть внешние интеграции через xml. До какого-то момента к нам приходило максимум 30 тыс. документов в одной выгрузке, но после подключения очень крупного клиента в одной выгрузке начали получать до 2 млн документов. Это около 4 млн записей в базе данных. 

SLA на обмен данными со сторонними системами — меньше пяти минут. И мы в него не укладывались, нужно было срочно оптимизировать бизнес-процессы, среди которых весомой частью была именно вставка данных. 

В этой статье расскажу именно про последнюю часть — как ускорить вставку данных. Покажу, какие настройки стоит применить для Spring и Hibernate, для чего они нужны и какой буст по производительности дают. Здесь же разберем, как можно создать свою собственную прослойку для вставки данных в PostgreSQL. Эта прослойка позволит нам использовать разные подходы к вставке данных, в том числе кастомные методы PostgreSQL, а также распараллелить процесс вставки. Посмотрим, как ее можно подружить со Spring, а также какой профит нам даст каждый из рассмотренных подходов. 

Читать далее

ИИ как опасный советчик: Почему нейросетям нельзя доверять настройку производительности PostgreSQL

Уровень сложностиСложный
Время на прочтение4 мин
Количество просмотров1.8K

В статье проводится сравнительный анализ эффективности использования оператора JOIN и коррелированного подзапроса в СУБД PostgreSQL в условиях высокой параллельной нагрузки. На основе экспериментальных данных опровергаются универсальные рекомендации систем искусственного интеллекта.

ℹ️ Новый инструмент с открытым исходным кодом для статистического анализа, нагрузочного тестирования и построения отчетов доступен в репозитории GitFlic и GitHub

kznalp/PG_EXPECTO: Комплекс статистического анализа производительности СУБД PostgreSQL

pg-expecto/pg_expecto: Комплекс pg_expecto для статистического анализа производительности и нагрузочного тестирования СУБД PostgreSQL

Читать далее

Мигрируем с Oracle на Postgres-like СУБД: наш опыт перевода процессов розничного кредитования на рельсы СУБД Pangolin

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.3K

Привет, Хабр! Меня зовут Валерий Пташкин, я руководитель направления в трайбе «Потребительское Кредитование» в Сбере. Статью я подготовил вместе с моими коллегами — Кириллом Макаровым и Евгением Беляевым.

Наш продукт отвечает за хранение клиентских заявок на потребительские кредиты, заявок кредитного потенциала, автокредитов, ипотечного кредитования и так далее. И в этом году мы перевели работу нашего модуля хранения с Oracle на СУБД Pangolin (сборка PostgreSQL с доработками от СберТеха).

При переезде у нас было несколько критичных требований к СУБД: способность держать достаточно высокую нагрузку (4 тысячи запросов в секунду), при этом иметь время отклика не более 100 мс для 99 % запросов, и обеспечивать максимально высокую доступность нашего сервиса как системы уровня mission critical.

В этой статье мы расскажем про состояние нашей инфраструктуры, этапы миграции, и коснёмся возможных нюансов и потенциальных рисков. Это будет полезно тем, кто тоже планирует переезд на СУБД Pangolin или другой форк PostgreSQL. Уверен, многие рекомендации пригодятся и пользователям стандартного PostgreSQL. Итак, начнём.

Читать далее

Сколько производительности съедает Kubernetes: сравниваю native PostgreSQL и CloudNativePG в Yandex Cloud

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров7.5K

В этой статье я руками сравнил производительность PostgreSQL на «голой» VM в Yandex Cloud и в кластере CloudNativePG в Kubernetes. Один и тот же конфиг, одинаковые ресурсы, fio и pgbench, несколько типов хранилищ — и просадка до ~40% при работе через cnpg.

Разбираемся, где теряются TPS: на диске, в сети или в оболочке k8s, показываем все цифры в таблицах и схемах прохождения запроса «до VM» и «до Pod’а» — и в конце честно отвечаем, стоит ли игра свеч.

Читать далее

Что происходит, когда вы добавляете строку в PostgreSQL

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

Привет, Хабр! Меня зовут Александр Гришин, я руководитель по развитию продуктов хранения данных в Selectel. Сегодня я предлагаю продолжить разбираться с PostgreSQL и заглянуть еще глубже в эту кроличью нору. Посмотрим, что происходит под капотом СУБД во время записи строк, поверхностно разберем, как устроены страницы памяти, что такое tuple, tuple chain, fillfactor, VM и FSM. Эти знания помогут разработчикам не только понимать, как работает база данных, но и эффективно управлять ее производительностью в продакшене.

Если вы начинающий DBA, разработчик, инженер или архитектор облачной инфраструктуры, эта статья для вас. Погнали?

Погнали!

Разгоним Unicode в PostgreSQL

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.5K

Всем привет!

Меня зовут Александр Борисов, я главный эксперт по технологиям в СберТехе. В статье расскажу про свой алгоритм, который позволил повысить скорость Unicode в PostgreSQL 18. На эту тему уже выпущен патч Optimization for lower(), upper(), casefold() functions, принятый сообществом PostgreSQL.

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

Начнём с краткого обзора: что же удалось ускорить в PostgreSQL?

Начнём!

База знаний для компании: история о том, как мы (наконец-то) перешли на wiki в Outline

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

Не все корпоративные базы знаний помогают решать вопросы. Некоторые только создают больше проблем. На своем опыте рассказываю о том, как мы справлялись с одной из них.

Читать далее

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

Kafka реально быстрая, но я возьму Postgres

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

Команда Go for Devs подготовила перевод статьи о том, почему большинству проектов не нужна Kafka, «веб-масштабные» очереди и зоопарк из пяти баз данных. Автор на бенчмарках показывает, как далеко можно уехать на одном Postgres — и заодно разбирает, почему карго-культ масштабирования и «инфраструктура ради резюме» только мешают делать работу.

Читать далее

Пятничные заявки и 6 ТБ WAL: будни инженера поддержки Postgres Professional

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

Техподдержка бывает разная. Где-то это «попробуйте перезагрузить» или «проверьте провод», а где-то — сложные инженерные задачи, которым не жалко посвятить хоть всю жизнь. Какой вариант в поддержке Postgres Professional и кого/чего больше в этой сфере — людей или технологий, — разбираемся со старшим инженером технической поддержки Postgres Professional Камилем Каримовым.

Читать далее

Как мы тестируем RT.Warehouse: тестовые сценарии, сбор и анализ метрик по результатам тестирования

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров592

Привет, Хабр! Меня зовут Ольга Проскурякова, я лид направления тестирования в компании TData. Эта статья — моя первая публикация на Хабре. Буда рада поделиться своим опытом.

Платформа, которую разрабатывает TData — это комплексное решение для работы с большими данными: сбор, управление, хранение, визуализация и анализ. В центре платформы — десяток ключевых продуктов. Все они проходят проверку нашей командой тестировщиков. Сегодня я расскажу о том, как мы тестируем один из них.

Для наглядности опишу предметную область тестирования. Это продукт RT.Warehouse — массивно‑параллельная СУБД для построения хранилищ данных, разработанная на базе Greenplum.

RT.Warehouse обеспечивает высокую степень производительности и отказоустойчивости благодаря гибкости горизонтального масштабирования, использованию в ядре продвинутого оптимизатора запросов и адаптации архитектуры для хранения и обработки больших массивов данных.

Читать далее

Свой REST API сервер на Kotlin с базой данных и деплоем на Railway за 10 минут на Ktor

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2.4K

В этой статье мы разберём, как написать собственный сервер на Kotlin, подключить к нему базу данных, создать пару эндпоинтов и всего за 5 минут задеплоить сервер вместе с базой. В итоге у нас получится полноценная связка сервер + БД, готовая к работе. В дальнейшем на её основе вы сможете создавать более сложные серверные решения.

Читать далее

«Два стула» для данных: как мы боремся с рассинхроном в Rust-сервисе между Solana и PostgreSQL

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

Представьте: вы строите систему верификации дипломов. Требования простые — данные должны быть неизменяемыми (привет, блокчейн) и при этом быстро доступными для запросов (привет, PostgreSQL). Казалось бы, идеальное решение — писать в оба хранилища. Но дьявол, как всегда, кроется в деталях.

Наш проект использует паттерн двойной записи (Dual-Write):

Solana — гарантирует неизменность и прозрачность данных о выданных дипломах

PostgreSQL (Supabase) — обеспечивает быстрые выборки и сложные запросы

Звучит красиво на архитектурных диаграммах, но в production всё не так радужно. Главная проблема — частичные сбои. Транзакция в Solana прошла успешно, диплом записан в блокчейн навечно, а вот запись в PostgreSQL упала. Пользователь получил подтверждение, но половина системы о его дипломе не знает.

Сегодня я покажу, как мы столкнулись с этой проблемой лицом к лицу и какие паттерны применили для её решения.

Чтобы стулья не разъехались

Ожидания типа IO как необходимое и достаточное условие отсутствия индекса. Проверка гипотезы с помощью PG_EXPECTO

Уровень сложностиСложный
Время на прочтение6 мин
Количество просмотров171

В эпоху, когда нейросети становятся первым источником знаний для многих разработчиков, особенно важно проверять их утверждения на практике. Один из таких вопросов — прямая связь между типами ожиданий в PostgreSQL и отсутствием индексов. AI-помощники часто дают логичные, но упрощённые ответы, которые могут ввести в заблуждение при решении реальных задач оптимизации. В этой статье мы экспериментально, с помощью инструмента pg_expecto, проверим , насколько обоснованно распространённое мнение о том, что IO-ожидания однозначно указывают на проблемы с индексацией.

ℹ️Новый инструмент с открытым исходным кодом для статистического анализа, нагрузочного тестирования и построения отчетов доступен в репозитории GitFlic и GitHub

kznalp/PG_EXPECTO: Комплекс статистического анализа производительности СУБД PostgreSQL

pg-expecto/pg_expecto: Комплекс pg_expecto для статистического анализа производительности и нагрузочного тестирования СУБД PostgreSQL

Читать далее

JOIN vs. Коррелированный подзапрос: Разрушаем миф о «N+1» на 4 СУБД

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров7K

JOIN vs коррелированный подзапрос: мой разбор мифа «JOIN всегда быстрее»

Я проверил оба подхода (JOIN + GROUP BY и коррелированный подзапрос) на маленьком датасете и в ряде СУБД. Иногда подзапрос быстрее. Всё зависит от плана (Nested Loop vs Hash) и индексов. Слепо верить «JOIN всегда быстрее» не стоит. Смотрите EXPLAIN.

Читать далее
1
23 ...

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