Реліз PostgreSQL 17
10:53, 30.09.2024
Реліз PostgreSQL 17 відбувся у вересні 2024 року, а оновлення поточної версії виходитиме до листопада 2029 року. Основні доповнення та зміни в проєкті такі:
- Додано нові можливості для роботи з JSON. Якщо ж говорити безпосередньо про функціональність, то з'явилися оператори jsonpath для того, щоб можна було перетворити дані з рідного формату на PostgreSQL, крім того, стала доступною функція JSON-TABLE, яка необхідна для конвертації даних у PostgreSQL. Також введено нові функції для запиту і створення даних JSON формату;
- Змінено підхід у структурі даних операції VACUUM. Тепер під час виконання операції буде використовуватися набагато менше ресурсів і таким чином швидкість виконання буде збільшена;
- Якщо в запиті з IN застосовується індекс на базі B-tree, в такому варіанті буде істотно підвищена ефективність. В індексах BRIN буде доступна паралельна побудова. Трохи прискорено обробку CTE при використанні команди WITH, і також оптимізовано NOT NULL запити. SIMD буде використано для прискорення певних обчислень;
- Трохи змінено команду MERGE за допомогою якої створюються умовні вирази. З'явилася підтримка RETURNING, вираз виводить значення на базі внесених змін або видалень;
- Покращено пропускну здатність у системах з великою кількістю одночасних запитів. Для досягнення оптимізації було змінено код лога WAL. В операції ANALYZE було збільшено швидкість обробки даних у таблицях для оновлення статистичних даних;
- У пакетному режимі було внесено деякі зміни, що стосуються завантаження/експорту даних. Також у команді COPY вдалося підвищити швидкість експорту, трохи оптимізовано копіювання і було додано команду ON_ERROR - вона забезпечує продовження імпорту, навіть якщо сталася помилка під час завантаження деяких даних;
- Спрощено оновлення СУБД, за будь-яких змін у БД механізм логічної реплікації значно полегшено. Раніше процес транслювання включав в себе видалення слотів реплікації, то тепер цей етап анульовано. Зараз для логічної реплікації досить просто переключитися на запасний сервер. Також, вийшла утиліта pg_createsubscriber, яка потрібна для перетворення в логічну репліку;
- У секціонованих таблицях з'явилася підтримка оптимізації Constraint exclusion і стало можливо задавати унікальні ідентифікатори для стовпців;
- У команді EXPLAIN додано інформацію про витрату пам'яті і часу під час введення і виведення. За допомогою опцій SERIALIZE і MEMORY можливо витягти точні відомості про час і використаної пам'яті на зміну даних для подальшої передачі;
- З'явилася можливість передачі на зовнішній сервер запитів IN/EXISTS у зовнішніх таблицях postgres_fdw;
- Додано підтримку інкрементальних бекапів в утиліті pg_basebackup. Для того щоб відновити бекап з безлічі копій можна тепер застосовувати pg_combinebackup. І за допомогою опції filter в pg_dump стало можливим вибирати необхідні об'єкти;
- Додано роль pg_maintain, що дає право на управління та обслуговування СУБД;
- Для виявлення причини перебування даних у стані очікування тепер можна використовувати pg_wait_events разом із pg_stat_activity.