The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз СУБД PostgreSQL 15

13.10.2022 17:48

После года разработки опубликована новая стабильная ветка СУБД PostgreSQL 15. Обновления для новой ветки будут выходить в течение пяти лет до ноября 2027 года.

Основные новшества:

  • Добавлена поддержка SQL-команды "MERGE", напоминающей выражение "INSERT ... ON CONFLICT". MERGE позволяет создавать условные SQL-выражения, объединяющие в одном выражении операции INSERT, UPDATE и DELETE. Например, при помощи MERGE можно организовать слияние двух таблиц, вставляя недостающие записи и обновляя существующие.
    
       MERGE INTO customer_account ca
       USING recent_transactions t
       ON t.customer_id = ca.customer_id
       WHEN MATCHED THEN
         UPDATE SET balance = balance + transaction_value
       WHEN NOT MATCHED THEN
         INSERT (customer_id, balance)
         VALUES (t.customer_id, t.transaction_value);
    
  • Значительно улучшены алгоритмы сортировки данных в памяти и на диске. В зависимости от типа данных в тестах наблюдается повышение скорости сортировки от 25% до 400%.
  • Ускорена работа оконных функций с использованием row_number(), rank(), dense_rank() и count().
  • Реализована возможность параллельного выполнения запросов c выражением "SELECT DISTINCT".
  • В механизме подключения внешних таблиц Foreign Data Wrapper (postgres_fdw) реализована поддержка асинхронных коммитов в дополнение к добавленной ранее возможности асинхронной обработки запросов к внешним серверам.
  • Добавлена возможность применения алгоритмов LZ4 и Zstandard (zstd) для сжатия WAL-логов транзакций, что при некоторых нагрузках позволяет одновременно повысить производительность и сэкономить дисковое пространство. Для сокращения времени восстановления после сбоя добавлена поддержка упреждающего извлечения страниц, фигурирующих в WAL-логе.
  • В утилиту pg_basebackup добавлена поддержка сжатия файлов с резервными копиями на стороне сервера, используя методы gzip, LZ4 или zstd. Предоставлена возможность использования собственных модулей для архивирования, позволяющих обойтись без необходимости запуска shell-команд.
  • Добавлена серия новых функций для обработки строк с использованием регулярных выражений: regexp_count(), regexp_instr(), regexp_like() и regexp_substr().
  • В функцию range_agg() добавлена возможность агрегирования многодиапазоных типов ("multirange").
  • Добавлен режим security_invoker, позволяющий создавать представления, выполняемые с правами вызывающего пользователя, а не создателя представления.
  • Для логической репликации реализована поддержка фильтрации строк и задания списков столбцов, позволяющих на стороне отправителя выделить из таблицы подмножество данных для репликации. Кроме того, в новой версии упрощено управление конфликтами, например, появилась возможность пропуска конфликтующих транзакций и автоматического отключения подписки при выявлении ошибки. При логической репликации разрешено использование двухфазных коммитов (2PC).
  • Добавлен новый формат логов - jsonlog, сохраняющий информацию в структурированнов виде, используя формат JSON.
  • Администратору предоставлена возможность делегирования пользователям отдельных полномочий для изменения определённых параметров конфигурации сервера PostgreSQL.
  • В утилиту psql добавлена поддержка поиска информации о настройках (pg_settings) при помощи команды "\dconfig".
  • Обеспечено использование разделяемой памяти для накопления статистики о работе сервера, что позволило избавиться от отдельного процесса сбора статистики и периодического сброса состояния на диск.
  • Предоставлена возможность использования по умолчанию ICU локалей "ICU Collation", раньше в качестве локали по умолчанию можно было использовать только локали libc.
  • Предложено встроенное расширение pg_walinspect, позволяющее инспектировать содержимое файлов с WAL-логами при помощи SQL-запросов.
  • Для схемы public у всех пользователей, за исключением владельца БД, осуществлён отзыв полномочий на выполнение команды CREATE.
  • В PL/Python удалена поддержка Python 2. Удалён устаревший эксклюзивный режим резервного копирования ("exclusive backup").

Дополнение: С 19:00 до 20:00 (MSK) состоится вебинар-обсуждение изменений новой версии с Павлом Лузановым (Postgres Professional). Для тех, у кого не получится присоединиться к эфиру, открыта запись июньского доклада Павла "PostgreSQL 15: MERGE и не только" на PGConf.Russia.

 
  1. Главная ссылка к новости (https://www.postgresql.org/abo...)
  2. OpenNews: Релиз СУБД PostgreSQL 14
  3. OpenNews: Конфликт, связанный с торговыми марками PostgreSQL, остаётся не урегулирован
  4. OpenNews: Выпуск FerretDB 0.3, реализации MongoDB на базе СУБД PostgreSQL
  5. OpenNews: Компания Alibaba открыла код распределённой СУБД PolarDB, основанной на PostgreSQL
  6. OpenNews: PostgreSQL Anonymizer 0.6, расширение для анонимизации данных в СУБД
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/57914-postgresql
Ключевые слова: postgresql
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (184) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 18:11, 13/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +26 +/
    Единственная и при этом ещё и нормальная база данных.
     

     ....большая нить свёрнута, показать (67)

  • 1.8, Аноним (8), 18:40, 13/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    (Не троллинг, я просто не знаю) - Какие препятствия есть у постгреса, чтобы его начали использовать по-серьёзному вместо оракла?
     

     ....большая нить свёрнута, показать (77)

  • 1.9, Серж (??), 18:40, 13/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +1 +/
    ИМХО, сделали бы упор лучше на производительность в целом и проблему наличия всяких pgbouncer'ов. Самое важное что должна уметь СУБД это переварить как можно больше пользователей/данных на запись/обновление и отдать данные по выборке как можно быстрее.

    Конструкции всякие это клёво, но данные это первостепенная задача. Молодцы что сделали улучшение скорости. Но это самое главное изменение. Остальное просто лишний шлак. Всякие там алгоритмы сжатия... В итоге все сжатие отключают, чтоб быстрее было. Вот что нужно!

     
     
  • 2.13, Аноним (3), 18:53, 13/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +7 +/
    Ну так сделай упор. Или привык, что тебе всё на блюдечке приносят?
     
  • 2.27, Аноним (2), 19:40, 13/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Ты же в курсе, как её раздувает? И в памяти, и на диске. Это всё время и задержки. Чем меньше данных читать/писать, тем эффективнее работа. Чем меньше памяти уходит на данные, тем эффективнее можно расходовать этот ресурс (причём, часто накладные расходы от сжатия вообще незначительные, а выгода колоссальная).
     
  • 2.39, хрю (?), 19:56, 13/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +6 +/
    >>Самое важное что должна уметь СУБД это переварить как можно больше пользователей/данных на запись/обновление и отдать данные по выборке как можно быстрее.

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

     
  • 2.40, Анно Домини (?), 19:56, 13/10/2022 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Те, кому нужна производительность, пользуются in-memory NoSQL. У Постгреса другие задачи и приоритеты. Иди портфель собирай.
     
     
  • 3.72, Аноним (72), 22:34, 13/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • –4 +/
    Те, кому нужна производительность, просто пользуются структурами в памяти. А бд нужны для оналитики, чтобы потом показать красивую табличку с графиком топ-менеджерам.
     
  • 3.98, Аноним (98), 08:38, 14/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    С каких пор в команде Postgres появился школьник-аналитик без опыта в продакшене? Эдакий постресовый Песков.
     
  • 2.69, Роман (??), 22:17, 13/10/2022 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Есть ощущение что pgbouncer и еже с ним считается неким дефолтом, как условно файлуха (filesystem) - не будете же вы без файлухи гонять постгрю и смысла чинить такой дефолт не видят.

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

     
  • 2.77, Наноним (?), 23:50, 13/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    Вообще-то сжатие в таких применениях всегда использовалось в первую очередь для ускорения записи на диск в том числе. Даже в тексте новости это написано.
     
  • 2.206, Аноним (206), 13:31, 17/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    На самом деле - перенос темпов в оперативку - это круто. Не нужно заморачиваться созданием виртуальных дисков в памяти. По-умолчанию снижается нагрузка на SSD, соответственно повышается их надежность.
     

  • 1.55, Аноним (55), 21:02, 13/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –1 +/
    На докер хабе пока не обновили ((
     
     
  • 2.80, Аноним (78), 00:37, 14/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    Так ты и сам можешь это сделать. Впрочем постгря в докере это скорее изврат, разве что для тестов и демок ещё может подойти.
     
     
  • 3.163, ded (??), 23:27, 14/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    Мистер аноним никогда не писал распределённые системы?
     
  • 3.195, лютый жабби.... (?), 18:37, 15/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    >постгря в докере это скорее изврат

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

     

  • 1.60, Программировай (?), 21:22, 13/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +1 +/
    А потом выйдет релиз у уважаемого спонсора с точно таким же ченджлогом, от которого начлица будут ахать и охать.
     
  • 1.68, Роман (??), 22:09, 13/10/2022 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    >  Администратору предоставлена возможность делегирования пользователям отдельных полномочий для изменения определённых параметров конфигурации сервера PostgreSQL.

    Это по заявкам из managed databases по типу AWS похоже

     
  • 1.70, Анно Домини (?), 22:26, 13/10/2022 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –3 +/
     

  • 1.85, Ддд (?), 03:12, 14/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –11 +/
    Тупая тормозная бд. Попробуйте в ней поиск по полям json сделать
     
     
  • 2.158, anonymous (??), 19:31, 14/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    json - опция в реляционной субд.
     
  • 2.160, Аноним (159), 21:41, 14/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Пробовал, только в постгресе у меня это и получилось сделать так чтобы работало быстро и без отложенной индексации.
     
  • 2.161, Аноним (161), 22:14, 14/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    Постгрес в некоторых случаях рвёт монгу
     
  • 2.199, Аноним (199), 07:59, 16/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Json в базе держать. Первое слово это про тебя.
     
     
  • 3.201, Аноним (2), 09:07, 16/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    Ты не совсем прав тут, это может быть вполне оправданно и эффективно для нестабильной схемы, либо каких-то редко доставаемых данных, или же при наличии ссылок на внешние данные, обеспечить консистентность которых в рамках существующих таблиц невозможно. Особенно, в связке с ORM.
     

  • 1.90, iCat (ok), 04:52, 14/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +3 +/
    Прекрасный инструмент для решения тех задач, для которых он предназначен!
     
     
  • 2.136, Аноним (136), 15:40, 14/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • –2 +/
    Для задач удвоения ЧСВ тех, кто ее использует.
     
     
  • 3.200, Аноним (199), 08:00, 16/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Неосилятор.
     

  • 1.111, Цезий Родонович (?), 12:33, 14/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +1 +/
    Буду стабильным, андо и пакеты не завезли. Будем ждать :)
     
     
  • 2.130, Аноним (118), 14:29, 14/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Андо и пакеты никому не нужны, а если нужны — используйте базу где они есть :-)
     
     
  • 3.164, Цезий Родонович (?), 23:52, 14/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Какое тонкое чувство юмора
     
  • 3.228, Аноним (228), 14:05, 21/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Какое глубокое проникновение в суть, такие "фразы" надо выливать в камне.
     

  • 1.116, Анно Домини (?), 13:52, 14/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –3 +/
    https://www.cybertec-postgresql.com/en/things-could-be-improved-postgresql/
     
     
  • 2.124, Аноним (118), 14:20, 14/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Давай теперь такую же про mysql.
     

  • 1.135, Аноним (136), 15:39, 14/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –2 +/
    Кондовость. Но постгрешникам нормально, им не привыкать.

    INSERT ON DUPLICATE KEY UPDATE

     
     
  • 2.140, Аноним (139), 16:07, 14/10/2022 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    И? Что не так?
     

  • 1.156, PnD (??), 17:44, 14/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +1 +/
    А ещё в 15-й релиз добавили селектор как относиться к NULL в уникальных индексах.
    До сих пор каждый новый NULL был "это другое" (понимать надо).

    * Я не ДБА, просто так получилось что наступил на эти грабли чуть ли не накануне 15-го релиза.

     
  • 1.230, Алексей (??), 11:46, 29/10/2022 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    Главное преимущество оракла - органичный язык pl/sql и куча пакетов от самого Оракла вокруг обычной БД. Главный недостаток оракла - Clob и Blob и их обработка. Главный недостаток postgresql - vacuum, недостаток настолько пртивный, что готов мириться с оракловыми Clob
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру