Как стать автором
Обновить
140.17

PostgreSQL *

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

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

PostgreSQL 18: Часть 1 или Коммитфест 2024-07

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


Эта статья открывает цикл о новостях будущей, 18-ой, версии PostgreSQL. Рассмотрим следующие возможности попавшие в июльский коммитфест.


Планировщик: поддержка правого полусоединения хешированием
Планировщик: материализация внутреннего набора строк для соединения вложенными циклами в параллельном плане
Вспомогательные функции планировщика для generate_series
EXPLAIN (analyze): статистика рабочих процессов узла Parallel Bitmap Heap Scan
Функции min и max для составных типов
Имена параметров для функций regexp*
Режим отладки в pgbench
pg_get_backend_memory_contexts: столбец path вместо parent и новый столбец type
Функция pg_get_acl
pg_upgrade: оптимизация работы pg_dump
Предопределенная роль pg_signal_autovacuum_worker

Читать дальше →
Всего голосов 5: ↑5 и ↓0+6
Комментарии2

Новости

Как упростить управление базами данных и снизить расходы

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

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

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

Читать далее
Всего голосов 3: ↑3 и ↓0+4
Комментарии7

Что ищет он в краю далёком? Как найти смысл жизни с PostgreSQL

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

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

Доступность этих технологий открывает безграничные возможности для их применения в самых разных областях: от систем управления знаниями до «копилотов», помогающих более тщательно анализировать анамнез пациентов, или информационных киосков, позволяющих собрать идеальную корзину товаров для пикника.

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

Откроем скрытые смыслы
Всего голосов 9: ↑8 и ↓1+10
Комментарии1

PSQLBuddy — резервное копирование и восстановление PostgreSQL

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

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

Опять-двадцать пять, или резервное копирование баз данных PostgreSQL по новому. Снова.

Читать далее. Опять
Всего голосов 7: ↑6 и ↓1+8
Комментарии16

Истории

Немного о Durability в Postgres. Часть 2

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

В прошлой публикации мы обсудили механизм парсинга, оптимизации и исполнения запроса в PostgreSQL. В процессе обсуждения, был также затронут WAL (Write-Ahead Log). Давайте разберемся, что же это такое.

WAL, он же Write Ahead Log - бинарный лог, хранящий в бинарном виде непоcредственные результаты исполнения транзакций, модифицирующих текущее состояние данных. Речь идет о запросах INSERT, UPDATE и DELETE.

WAL обеспечивает Durability из ACID, т.е. сохранность данных в случае любых возможных сбоев.  Тем не менее, ошибочно представлять себе WAL как бэкап данных. Смысл данного механизма не в хранении копии всех созданных и измененных данных с момента создания бд.

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

Читать далее
Всего голосов 10: ↑9 и ↓1+12
Комментарии0

Марии (db) 15 лет! 15 причин чтобы её полюбить (или хотя бы с ней познакомиться)

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

MariaDB Server исполняется 15 лет! Вот 15 причин, по которым разработчики и администраторы баз данных любят его!

Читать далее
Всего голосов 17: ↑15 и ↓2+17
Комментарии5

Telegram-бот для анализа текста | выделение тематических групп

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

Буквально месяц назад, мы с моим коллегой участвовали в HAKATON. Наша команда взялась за интересную задачу от компании МТС: на основе тысяч опросов, найти усредненный синоним к определенной категории ответов и визуализировать это в виде графика, либо облака слов.

После выполнения задачи и защиты проекта мы задумались...

Читать далее
Всего голосов 4: ↑1 и ↓30
Комментарии2

Асинхронный SQLAlchemy 2: улучшение кода, методы обновления и удаления данных

Время на прочтение20 мин
Количество просмотров1.9K

Третья статья цикла по асинхронному SQLAlchemy 2 посвящена оптимизации кода, обновлению и удалению данных. Рассмотрены улучшения базового класса, подходы к обновлению записей и методы удаления, с акцентом на повышение производительности. Нажмите «Читать», чтобы ознакомиться с материалом.

Читать далее
Всего голосов 7: ↑7 и ↓0+9
Комментарии5

СTE, подзапрос или представление?

Время на прочтение5 мин
Количество просмотров5.9K

Здравствуйте, дорогие друзья! Сегодня мы окунёмся в мир SQL запросов и рассмотрим различные подходы, которые разработчики используют для работы с данными в БД. В современном мире разработки, где информация становитесь все больше и больше, и скорость получения данных имеет большое значение, умение эффективно извлекать и обрабатывать данные становится неотъемлемой частью работы многих SQL специалистов (особенно тех кто работает с нагруженными системами и DWH). Мы поговорим о таких методах, как Common Table Expressions (CTE), подзапросы, представления и материализованные представления.

Читать далее
Всего голосов 8: ↑5 и ↓3+4
Комментарии10

Немного о Durability в Postgres. Часть 1

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

Как известно, многие реляционные базы данных, а в данном конкретном случае PostgreSQL, обещают нам, что наши транзакции будут обладать соответствовать критериям ACID (Атомарность, Согласованность, Изолированность, Сохраняемость), при должном уровне конфигурирования тех или иных настроек.

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

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

Давайте представим ситуацию, что у нас есть база данных, в которой есть простенькая таблица:

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Выбираю Open Source БД для себя

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

Задача такая: искал Open Source БД для своего пет-проекта. Решил посмотреть в интернете новые решения в рамках БД. После чтения статей и отбора из 6-7 БД остались три (3), которые понравились лично мне. Больше ничего путного не нашел. 

Почему именно эти? Во-первых, они Open Source, а во-вторых, у них есть ответы на два главных моих вопроса «Для чего это нужно?» и «Работает ли из коробки?».

Давайте покажу на примерах.

Читать далее
Всего голосов 31: ↑27 и ↓4+27
Комментарии14

Как мы внедрили CockroachDB на DBaaS в компанию классических СУБД

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

Привет! Меня зовут Полина Кудрявцева, я инженер DBA в Авито. В этой статье я расскажу о том, как мы внедрили CockroachDB на DBaaS в компанию классических СУБД, а также опишу его плюсы, минусы и особенности работы.

Читать далее
Всего голосов 21: ↑21 и ↓0+23
Комментарии3

Postgresso 9 (70)

Время на прочтение17 мин
Количество просмотров2.5K

PostgreSQL: PostgreSQL 17 Released!

Новшества давно известны (в том числе из обзоров Павла Лузанова PostgreSQL 17: Часть 54321), но интересно, что выбрали в сообществе как самое-самое важное. Выбрали вот что:

Производительность:

переработанное управление памятью (overhauled memory management) при вакууме,

оптимизация доступа к хранению и улучшение работы при параллельных нагрузках (high concurrency workloads),

ускорение при массовой загрузке и экспорте,

улучшения работы с индексами.

Работа с новыми типами нагрузок:

реализация SQL/JSON JSON_TABLE .

Для высококритичных систем:

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

А вот что привлекло внимание сразу нескольких комментаторов: изменения в оформлении самих пресс-релизов:

More Release Note Details

Читать далее
Всего голосов 12: ↑12 и ↓0+16
Комментарии0

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

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

PostgreSQL — особенности работы с памятью для 1С-систем. Часть 1

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

Этой статьей мы начинаем цикл, посвященный различным настройкам по оперативной памяти в PostgreSQL. Тема непростая, даже сложная. Понятной информации по ней крайне мало (по состоянию на октябрь 2024). Поэтому будем разбираться, шаг за шагом, вдумчиво и, как принято у нас в блоге, подкреплять все выводы исследованиями и картиной из программы мониторинга PERFEXPERT (версия для PG).

Читать далее
Всего голосов 17: ↑16 и ↓1+17
Комментарии14

Оптимизация хранимых процедур на PostgreSQL, мигрированных с MsSQL. Подходы к реализации, личный опыт

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

Привет всем!

Я — Ипатов Александр, backend‑разработчик в ГК Юзтех. Сегодня хочу поделиться своим опытом в интересном проекте, связанном с миграцией БД MsSQL на PostgreSQL в разрезе оптимизации хранимых процедур и функций (далее — хранимых процедур, так как процесс оптимизации не сильно завязан на том, что именно имеем на выходе).

Актуальность проектов, связанных с миграциями серверов и баз данных с зарубежных платных продуктов (Microsoft, Oracle) на аналогичные отечественные или зарубежные open‑source решения (в разрезе статьи будем рассматривать Postgres) в 2024 году очень велика. Те решения, которые были реализованы и поддерживались на протяжении 5–10 лет, потребовалось практически в формате «пожара» переносить на аналогичные. А бизнес, который привык к уже полностью сформированным и отработанным рабочим процессам, не готов к потере эффективности и, как следствие, потере клиентов сервисов, заказов и бизнес‑метрик.

В одном из таких проектов мне удалось поучаствовать. Из начальных условий: проект по переносу БД из MsSQL начался примерно 3 года назад.

На самом деле, проект был более обширный — перенос монолитного сервиса на микросервисы, в том числе, как один из элементов — перенос БД.

Хочется отметить, что перенос схем, таблиц, индексов и других элементов базы данных прошел относительно спокойно. Чего не скажешь о переносе хранимых процедур. Язык T‑SQL, на котором пишутся хранимые процедуры в MsSQL, конечно же имеет отличия от PL/pgSQL, который используется в PostgreSQL. В связи с чем, непосредственно миграция хранимых процедур заняла много времени: точное число хранимых процедур я не назову, но порядок — около 800 штук (среди которых 500 стали работать хуже после миграции, их то и предстояло оптимизировать).

Читать далее
Всего голосов 6: ↑6 и ↓0+8
Комментарии7

Быстрее пули: как найти счастье с PostgreSQL

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

В этой статье мы расскажем о том, как эффективно реализовать полнотекстовый поиск с помощью PostgreSQL. Узнайте, как улучшить скорость и точность поиска по текстовым данным, используя такие инструменты, как tsvector, tsquery и индексы GIN, и как эти возможности могут значительно повысить производительность вашего приложения.

Читать далее
Всего голосов 29: ↑28 и ↓1+40
Комментарии11

Ручное восстановление БД PostgreSQL после аппаратного сбоя

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

В очередной рабочий день поступила задача обновить Gitlab. Задача в общем-то не сложная, ни смотря на то, что там он установлен в докере из многим знакомого образа от sameersbn, что впоследствии было переделано на omnibus (что бы это не значило), т.к. по моему опыту omnibus версия (установка на чистый линукс) гораздо проще и предсказуемей в эксплуатации. Впрочем статья совсем не об этом.

Но как можно понять из наличия этой статьи, что-то пошло не так...

Читать далее
Всего голосов 15: ↑15 и ↓0+19
Комментарии2

PostgreSQL 17: уже можно просто делать бекапы и перестать страдать?

Время на прочтение10 мин
Количество просмотров15K

Так исторически сложилось, что задача организации простого и понятного резервного копирования в мире PostgreSQL до сих пор не решена. Есть набор комьюнити утилит, у каждой из которых есть некие плюсы, но всегда в нагрузку будет прорва минусов (тут нет инкрементных копий, там нет внятного расписания, это может только весь сервер вместо конкретной базы увозить и так далее). Да, есть тяжёловесный энтерпрайзный софт за много денег, зачастую требующий странного и работающий по какой-то своей логике, но это тоже не панацея. А вот чтобы просто и понятно, без головных болей организовать прозрачный процесс банального бекапа с инкрементами, работающим расписанием и восстановления только того что надо - вот такого нет.

Но буквально на днях вышел PostgreSQL 17 и может там что-то изменилось? И да, и нет. Та самая мана небесная в виде pg_awesome_backup_tool так и не появилась, однако в релиз попал механизм walsummarizer, который обещает нативно отслеживать изменения в файлах баз данных, что позволит делать инкрементальные бекапы нативно и без лишних приседаний.

А чтобы не рассматривать новичка в вакууме, будем сравнивать его с ptrack - нашей (Postgres Professional) разработкой, которую наши любимые конкуренты уже расхватали в свои продукты и продают их как уникальнейшие решения.

Читать далее
Всего голосов 27: ↑27 и ↓0+33
Комментарии17

PostgreSQL brainteaser: медленный Index Scan

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

В моей работе, когда приходится исследовать и нагружать СУБД нетипичной нагрузкой и синтетическими тестами, часто встречаются случаи загадочного поведения системы: ускорение/замедление времени выполнения запроса на пару порядков, отказ использовать тот или иной индекс и тд. Объяснение странного поведения оказывается в итоге почти всегда тривиальным и хорошо известным опытным DBA. Однако встретив его в реальной эксплуатации первый раз невольно теряешься и на разбор кейса уходит много времени. Вместе с тем, это достаточно интересное упражнение - навроде того, как прорешать задачник по аэродинамике после 10 лет проектирования планеров самолётов. Поэтому предлагаю здесь попробовать формат обсуждения/изучения PostgreSQL в виде задач. Вдруг зайдёт?

Читать далее
Всего голосов 3: ↑2 и ↓1+3
Комментарии13

Как мы плавно подготовились к переходу с Oracle на PostgreSQL и не потеряли в эффективности

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

Привет, Хабр! Меня зовут Михаил Герасимов. Это продолжение статьи «Как в РСХБ разработали средство генерации SQL-запроса для упрощения задач по тестированию», где описывались принципы работы QueryBuilder. 

В условиях растущего тренда на импортозамещение в ИТ-компаниях, переход с коммерческих СУБД на Open Source решения стал одной из ключевых задач для многих организаций. В частности, в проекте по автоматизации тестирования специалисты РСХБ успешно адаптировали свой инструмент генерации SQL-запросов QueryBuilder к переходу на PostgreSQL.

Читать далее
Всего голосов 12: ↑11 и ↓1+15
Комментарии3
1
23 ...

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