Search
Write a publication
Pull to refresh
-7
Jack Grebe @jackgreberead⁠-⁠only

груб деструктивен неприятен подозрителен ошибочен

Send message

l9ec: волшебный патч ядра Linux

Level of difficultyMedium
Reading time10 min
Views20K

Если вам неудержимо хочется использовать оборудование из музея для современной разработки — статья специально для вас.

Читать далее

С заботой о CPU: как найти узкое горлышко и сконфигурировать Postgres Pro

Reading time4 min
Views5.5K

СУБД Postgres Pro – сложный механизм, который можно гибко настраивать под конкретный тип нагрузки. Для этого в нём имеется множество параметров и инструментов. Например, одним из главных потребителей ресурсов CPU является оптимизатор/планировщик запросов, который отвечает за построение оптимального плана выполнения. Существует большое количество параметров, которые прямо или косвенно влияют на работу планировщика, но к их изменению надо подходить очень осторожно, т. к. возможен обратный эффект. Например, параметры _collapse_limit могут и помочь оптимизатору рассмотреть большее количество вариантов планов, и негативно повлиять на время планирования.

Сегодня я расскажу, как мы решали реальную проблему производительности и высокой (> 90%) утилизации ресурсов CPU на промышленном «боевом» сервере с СУБД Postgres Pro Enterprise 15, обслуживающем запросы бизнес-приложения, какие для этого использовали инструменты и что мы изменили в настройках СУБД.

Читать далее

Базы данных. Основы разработки и работа с индексами в PostgreSQL

Reading time7 min
Views8.2K

Продолжаем делиться полезными инсайтами с наших корпоративных митапов. Сегодняшний спикер, старший бэкенд-разработчик Factory5 Роман Гордиенко рассказывает об основных понятиях реляционных баз данных и о том, как использовать индексы в PostgreSQL. Информация будет полезна всем, кто работает с реляционными базами данных или планирует это делать в будущем.

Читать далее

Три фичи PostgreSQL, которые будут полезны каждому новичку

Reading time5 min
Views22K

Думаю, вы знаете, что поиск эффективных решений – это половина успеха. Я сам прошел через все эти тернии, когда работа с данными казалась слишком сложной и запутанной. И именно тогда я открыл для себя потрясающие возможности PostgreSQL, которые значительно упростили мою жизнь.

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

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

Читать далее

Как я делал upgrade PosgreSQL 12 -> 16

Level of difficultyEasy
Reading time4 min
Views3.5K

Сложилось так исторически, что мы долго не обновляли PostgreSQL и застряли на версии 12. Но пришло время обновлять зависимости проекта и оказалось, что Django 5.1 версию 12 PostgreSQL уже не поддерживает и это мотивировало меня провести обновление до новейшей 16 версии.

На момент написания у нас всё организовано достаточно просто — все необходимые компоненты запускаются в Docker-контейнерах через Docker Compose.

У меня было два варианта, как произвести миграцию:

Читать далее

pg_pathman vs декларативное секционирование — что лучше?

Level of difficultyMedium
Reading time8 min
Views2.2K

Добрый день, коллеги! Как известно, компания "Postgres Professional" более не рекомендует использовать секционирование с использованием pg_pathman, а рекомендует использовать вместо него декларативное секционирование. Однако помимо синтаксического сахара и утилитарного кода по поддержке интервального (в стиле Oracle) секционирования, я обнаружил для себя ещё одну проблему в такой миграции (переходе). Надеюсь, коллеги из PGPro доработают декларативное секционирование к моменту окончательного выпиливания pg_pathman.

Читать далее

Индексирование баз данных в PostgreSQL: погружение в тему

Level of difficultyEasy
Reading time9 min
Views11K

В продолжение серии статей об устройстве системы управления базами данных PostgreSQL (раз, два) смотрим, как ускорить выполнение запросов к базе данных с помощью индексов.

Привет, Хабр! Меня зовут Артур Титаев, я аналитик департамента проектирования и разработки IBS. Недавно наша команда занималась масштабным импортозамещением компонентов системы поддержки принятия решений для крупного российского заказчика. После переезда с Oracle и MySQL на PostgreSQL мы определили, что время выполнения SQL-запросов для показателей хозяйственно-экономической деятельности клиента в PostgreSQL заметно больше, чем время выполнения тех же запросов для тех же показателей в Oracle. Для «тяжелых» показателей разница во времени выполнения запроса могла достигать 20–30 минут. И это несмотря на то, что база данных Oracle не была проиндексированной!

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

Читать далее

Кластеризация PostgreSQL за день или за 15 минут: разбираем варианты и подводные камни реализации

Level of difficultyMedium
Reading time13 min
Views22K

Кластеризация необходима для большинства СУБД уровня Enterprise. Есть много способов создать или развернуть кластер: от бесплатных до дорогих, от простых до сложных. У разных вендоров свои приоритеты: одни делают настройку кластера в пару кликов (как в MS SQL), другие фокусируются на надежности и функциональности (Oracle).

В мире СУБД на базе PostgreSQL на сторону которых всё активнее переходит российский IT, тоже есть свои кластерные инструменты и решения: как бесплатные и открытые Patroni, Stolon, pacemaker/corosync, так и проприетарные. Лидер по популярности среди открытых решений – Patroni. Сегодня я расскажу, почему настраивать кластеризацию на нем руками весело только первые пару раз. Поговорим об особенностях поддержки Patroni в Proxima DB, снижении порога входа для новичков и повторяемости конфигураций. 

Читать далее

Хранение данных в Postgresql

Level of difficultyMedium
Reading time10 min
Views24K

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

Для начала определимся с общеизвестными вещами. Данные хранятся в таблицах, таблицы находятся в схемах, схемы, в свою очередь, в базах данных. Под данными я тут подразумеваю одну или несколько строк. В качестве примера будем рассматривать эталон критики, по моему личному мнению, цитаты Линуса Торвальдса.

Подробнее под катом

Курс «PostgreSQL для начинающих»: #4 — Анализ запросов (ч.2 — узлы получения данных)

Level of difficultyMedium
Reading time12 min
Views18K

Продолжаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих", подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре".

В первой части лекции мы узнали, что такое план выполнения запроса, как и зачем его читать (и почему это совсем непросто), и о каких проблемах с производительностью базы он может сигнализировать. В этой - разберем, что такое Seq ScanBitmap Heap ScanIndex Scan и почему Index Only Scan бывает нехорош.

Как обычно, для предпочитающих смотреть и слушать, а не читать - доступна видеозапись (часть 1часть 2) и слайды.

Читать далее

Некоторые моменты switchover в Patroni. Практические истории из SRE-будней. Часть 8

Level of difficultyMedium
Reading time7 min
Views4.3K

Однажды нам нужно было уменьшить мастер кластера PostgreSQL по CPU и памяти. План был надёжный: дождаться низкой нагрузки на кластер, сменить мастер на одну из асинхронных реплик, переконфигурировать виртуальную машину с бывшим мастером и сделать switchover обратно. Казалось бы, что могло пойти не так?

Читать далее

Администрирование PostgreSQL для начинающих (часть 1)

Level of difficultyEasy
Reading time33 min
Views30K

Эта статья предназначена для системных администраторов, которые хотят научиться работать с PostgreSQL, но не знают, с чего начать.

Читать далее

Администрирование PostgreSQL для начинающих (часть 2)

Level of difficultyEasy
Reading time17 min
Views6.4K

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

Читать далее

Администрирование PostgreSQL для начинающих (часть 4)

Level of difficultyEasy
Reading time25 min
Views8.4K

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

Читать далее

Администрирование PostgreSQL для начинающих (часть 5)

Level of difficultyEasy
Reading time17 min
Views7.5K

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

Читать далее

CPU Utilization = 100%. Это проблема СУБД?

Level of difficultyEasy
Reading time2 min
Views5.3K

Обычные последствия после получения оповещения мониторинга «CPU Utilization High» — все в панике, лихорадочные поиски причин, аварийная ситуация, конфколлы и т. д. и т. п. Всё, как положено для ИБД.

Однако, если посмотреть на ситуацию чуть подробнее, то выясняется, что всё не так печально, а даже совсем наоборот и причин для паники — никаких.

Читать далее

Влияние vacuum/analyze/bloat на производительность СУБД

Level of difficultyEasy
Reading time4 min
Views2.9K

Задачи эксперимента

1) Оценить степень влияния регулярного выполнения vacuum/analyze на производительность СУБД.

2) Оценить степень влияния распухания таблицы на производительность СУБД.

Читать далее

Настройка автовакуумирования в PostgreSQL

Level of difficultyEasy
Reading time5 min
Views13K

Привет, Хабр!

Сегодня поговорим о том, как правильно настраивать автовакуумирование в PostgreSQL — одном из механизмов, который позволяет базе данных оставаться «в форме» и поддерживать производительность на должном уровне. Если неправильно подойти к настройке, можно столкнуться с деградацией скорости обработки запросов и внезапным ростом объема данных.

Читать далее

Сжатие данных в PostgreSQL: как различные методы влияют на хранение TOAST

Level of difficultyEasy
Reading time6 min
Views7.9K

В мире управления базами данных от эффективного хранения больших объемов информации зависит оптимизация производительности и использования дискового пространства. В этой статье разберем основные методы сжатия данных в TOAST, их эволюцию, плюсы и минусы PGLZ и LZ4 и продемонстрируем базовую работу с TOAST в Postgres. В завершение обсудим, как данные с различными методами сжатия могут храниться в одной TOAST-таблице.

Читать далее

Information

Rating
Does not participate
Date of birth
Registered
Activity

Specialization

System Administration, Server Administrator
Middle
From 999,999,998 ₽
Git
SQL
PostgreSQL
Linux
Database
MySQL
Bash
Perl
MSSQL
Windows administration