Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11

🔥 PostgreSQL 18 вышел: новый асинхронный I/O ускоряет запросы в 3 раза

Новости

А также позволяет безболезненно обновиться с прошлой версии

596 открытий4К показов
🔥 PostgreSQL 18 вышел: новый асинхронный I/O ускоряет запросы в 3 раза

Вышла финальная версия PostgreSQL 18 — одного из самых популярных СУБД с открытым исходным кодом.

Главное нововведение — асинхронный ввод-вывод, который в ряде сценариев ускоряет работу с диском до трех раз.

Но на этом список улучшений не заканчивается: PostgreSQL 18 ускорил обновления между версиями, добавил удобства разработчикам, улучшил текстовые операции и получил поддержку OAuth 2.0.

До трех раз быстрее благодаря новому вводу-выводу

До этого момента PostgreSQL полагался на механизм операционной системы под названием readahead, чтобы предсказывать, какие данные будут востребованы.

В PostgreSQL 18 появилась полноценная поддержка асинхронного I/O, благодаря которой база может отправлять сразу несколько I/O-запросов — и не ждать завершения каждого по отдельности.

Это позволяет достичь серьезного прироста производительности при последовательном чтении, bitmap heap scan и даже во время VACUUM.

В зависимости от настроек (io_method) можно выбрать подходящий механизм — от worker до io_uring, или оставить синхронный режим (sync). Подробные параметры конфигурации описаны в официальной документации.

Обновления между версиями больше не обнуляют производительность

Одной из болезненных сторон мажорных обновлений PostgreSQL всегда было то, что после pg_upgrade приходилось заново собирать статистику — иначе планировщик начинал выбирать неоптимальные запросы.

В PostgreSQL 18 это исправлено: теперь можно сохранять собранную статистику между версиями, чтобы после обновления система сразу показывала ожидаемую производительность.

Помимо этого, утилита pg_upgrade теперь работает быстрее на базах с большим количеством таблиц, может выполнять параллельные проверки (через --jobs) и поддерживает флаг --swap — для моментальной замены директорий без копирования файлов.

Что еще улучшили

В PostgreSQL 18 появилось множество изменений, не связанных напрямую с I/O, но делающих жизнь разработчиков и администраторов проще. Среди них:

  • Новые методы индексирования (вроде skip scan), которые позволяют задействовать индексы даже без фильтрации по первым столбцам.
  • Улучшения в JOIN: быстрее работают hash join, merge join и incremental sort.
  • Поддержка виртуальных вычисляемых колонок, которые вычисляются на лету и не хранятся на диске.
  • Новый генератор uuidv7() — UUID с временной сортировкой, который лучше индексируется и ускоряет выборки.
  • Возможность использовать оба значения (OLD и NEW) в RETURNING при INSERT, UPDATE, DELETE и MERGE.
  • Улучшения в полнотекстовом поиске и обработке текста, включая новый casefold() и быструю сортировку PG_UNICODE_FAST.

Также PostgreSQL теперь проще интегрировать с OAuth 2.0, появилась валидация для FIPS-режима, улучшено логгирование репликации и по умолчанию включены контрольные суммы страниц (page checksums), что может повлиять на стратегию обновления через pg_upgrade.

PostgreSQL 18 уже доступен для загрузки. Полный список изменений можно найти в официальных release note.

Следите за новыми постами
Следите за новыми постами по любимым темам
596 открытий4К показов