ニュース

「PostgreSQL 18」が公開 ~非同期I/O採用で最大3倍の高速化、「UUID v7」にも対応

オープンソースのリレーショナルデータベース(RDB)システム

「PostgreSQL 18」がリリース

 The PostgreSQL Global Development Groupは9月25日、「PostgreSQL 18」をリリースした。オープンソースのリレーショナルデータベース(RDB)システム「PostgreSQL」における、年次のメジャーバージョンアップだ。

 「PostgreSQL」におけるデータの高速化は、これまでOSのリードアヘッド(Read-Ahead、必要となるデータを予測して先読みする技術)機構に依存していた。「PostgreSQL 18」ではこれを改め、新しい非同期I/Oサブシステムを導入。それぞれのI/O処理の完了を逐次待つのではなく、複数のI/O処理を並行して発行できるようになった。これにより、従来のリードアヘッドよりも全体的なスループットが向上するという。開発チームが行ったベンチマークによると、特定のシナリオにおいて最大3倍の性能向上が確認されたという。

 また、最適なクエリプランを選択するための統計処理も改善された。「PostgreSQL 18」以前ではメジャーバージョンアップグレードで統計情報が引き継がれなかったため、アップグレードした際に一時的なパフォーマンス低下が発生する可能性があったが、「PostgreSQL 18」では統計情報が引き継がれるためその心配はない。メジャーバージョンアップグレードを実行するユーティリティ「pg_upgrade」でもいくつかの機能強化が行われた。

 そのほかにも、「PostgreSQL 18」では以下の新機能と改善が盛り込まれている。

  • ワークロードを自動的に高速化する機能により、クエリ性能がさらに向上
  • テーブル結合のプランニングおよび実行方法にも多くの改善。ハッシュ結合の性能が向上し、マージ結合がインクリメンタルソートを利用できるように
  • ハードウェアアクセラレーション対応を拡充。「popcount」機能向けにARM NEONおよびSVE CPU命令セットのサポートを追加。内部処理で活用されており、パフォーマンス向上が期待できる
  • 値を保存する代わりにクエリ実行時に計算する仮想生成列を導入。格納型の生成列が論理レプリケーションにも対応
  • INSERT/UPDATE/DELETE/MERGEコマンドのRETURNING句で、直前の値(OLD)と現在の値(NEW)の両方にアクセスできるように
  • ランダムでありながらタイムスタンプを含めることでデータベースにおける並び替えや検索にも適した「UUID」の新バージョン「UUID v7」に対応。専用関数で生成が可能に
  • WITHOUT OVERLAPS句を用いたPRIMARY KEYおよびUNIQUE制約、またPERIOD句を用いたFOREIGN KEY制約により、範囲に基づく時間的制約をかけられる
  • CREATE FOREIGN TABLE ... LIKEコマンドを用いて、ローカルテーブルの定義を基に外部テーブルのスキーマ定義を作成できるように。利便性が向上
  • PG_UNICODE_FAST照合順序が追加され、多くのテキスト比較処理を高速化
  • 非決定的照合順序を利用したテキストに対するLIKE比較がサポートされ、より複雑なパターンマッチングの実行が容易に
  • VACUUM処理の戦略が改善。多くのページを積極的にフリーズすることで、オーバーヘッドを削減し、集中的なバキュームが必要となる状況においても有効に機能するように
  • フロントエンドとバックエンドの通信プロトコルをv3.2に。「PostgreSQL 7.4」(2003年リリース)で導入されたv3.0以来となるアップデート
  • OAuth 2.0認証のサポートにより、シングルサインオン(SSO)システムとの統合が容易に

 「PostgreSQL」はWindows/Mac/Linux/BSD/Solarisなどに対応しており、現在公式サイト「postgresql.org」から無償でダウンロード可能。Windows版インストーラーは64bit環境にのみ対応しており、EDBのWebサイトから入手できる。

ソフトウェア情報

「PostgreSQL」
【著作権者】
The PostgreSQL Global Development Group
【対応OS】
Windows/Mac/Linux/BSD/Solaris
【ソフト種別】
フリーソフト
【バージョン】
18.0(25/09/25)