Блог о PostgreSQL от Аристова Евгения

  • Caveats Refresh Materialized View Concurrently PostgreSQL

    Давайте обсудим, какие есть варианты обновления материализованного представления или MV (Materialized View) и какие при этом у нас есть проблемы. Огромным преимуществом MV является хранение результатов выполнения запроса – не нужно заново его выполнять. Особенно ощутимо это дает преимущество при сохранении результатов сложных запросов. Также мы можем создавать индексы на наши MV. Но при этом…

  • Что нового в PostgreSQL 16

    На прошлой неделе состоялся релиз новой 16 версии СУБД PostgreSQL. Давайте посмотрим, что нам приготовили. Наиболее значимые изменения коснулись логической репликации, а именно добавили две опции: CREATE SUBSCRIPTION sub CONNECTION ” PUBLICATION pub WITH (copy_data = on, binary=true, streaming=parallel); Более подробно с примерами можно ознакомиться в статье. Также теперь можно строить каскадную логическую репликацию и…

  • Табличные пространства в PostgreSQL

    Архитектура табличных пространств в PostgreSQL. Физическое и логическое представление

  • Журналы (WAL) в PostgreSQL

    Когда мы изменяем страницы данных в памяти, они не сразу попадают на диск. А ведь у нас просто может упасть кластер, причин множество. А наша задача – обеспечить возможность восстановления согласованности данных после сбоя – Durability в ACID. Для этого применяется механизм упреждающей записи – используется журнал (WAL – write ahead log): Что туда попадает:…

  • Уровни изоляции транзакций PostgreSQL

    Статья основана на материалах открытого вебинара “Уровни изоляции транзакций в PostgreSQL”. Запись занятия доступна в ютуб версии, рутуб версии и VK Видео. Презентация и исходники доступны по ссылке. Уровни изоляции транзакций являются ключевым аспектом реляционных баз данных, включая PostgreSQL. Они определяют, как данные изолируются друг от друга при выполнении параллельных транзакций, обеспечивая согласованность и целостность данных.…

  • Что быстрее count(id) или count(UUID) в PostgreSQL?

    Казалось бы в прошлой статье мы выяснили, что нет разницы между count(id), count(1) или count(*). Давайте теперь узнаем, как же PostgreSQL работает с таким замечательным инструментом как UUID. Общая идея заключается в том, что UUID предоставляет нам способ генерации уникальных идентификаторов без необходимости зависеть от конкретных контекстов или ресурсов. В PostgreSQL, для создания UUID, вы…