オープンソースリレーショナルデータベースの最新バージョン「PostgreSQL 17」がリリースされた。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
PostgreSQLグローバル開発グループは2024年9月26日(米国時間)、オープンソースリレーショナルデータベースの最新バージョン「PostgreSQL 17」をリリースしたと発表した。
PostgreSQL 17は、パフォーマンスとスケーラビリティが強化され、新しいデータアクセスおよびストレージパターンに適応している。全く新しいワークロードにも重要なシステムにもメリットをもたらし、開発者体験を強化する多くの重要な新機能が追加されているという。
PostgreSQL 17の主な機能強化点は以下の通り。
vacuum(バキューム)のための新しい内部メモリ構造を導入し、最善のケースでは従来の20分の1のメモリ使用量で済むようになった。これにより、vacuumの速度が向上し、共有リソースの使用が削減され、ワークロードに利用できるリソースが増加する。
I/O(Input/Output)レイヤーのパフォーマンスが向上している。高並行処理ワークロードでは、先行書き込みログ(WAL)処理の改善により、書き込みスループットが最大で2倍に向上する可能性がある。
新しいストリーミングI/Oインタフェースにより、シーケンシャルスキャン(テーブルの全データの読み込み)速度や、「ANALYZE」がプランナ統計を更新する速度も向上する。
PostgreSQLのデフォルトのインデックスメソッドである「B-Tree」インデックスを使用するIN句を含むクエリのパフォーマンスが向上している。また、「BRIN」インデックスが並列ビルドをサポートするようになった。
PostgreSQL 17には、NOT NULL制約の最適化や、共通テーブル式(WITHクエリ)の処理改善を含む、クエリプランニングの複数の改善が含まれている。
SQL/JSONの「JSON_TABLE」コマンドが利用可能となり、開発者はJSONデータを標準のPostgreSQLテーブルに変換できるようになった。またPostgreSQL 17は、SQL/JSONコンストラクタ(JSON、JSON_SCALAR、JSON_SERIALIZE)やクエリ関数(JSON_EXISTS、JSON_QUERY、JSON_VALUE)をサポートし、開発者がJSONデータと対話するためのさらなる手段を提供している。
PostgreSQL 17では、条件付きの更新に使用される「MERGE」に多くの機能(RETURNING句や、ビューの更新機能など)が追加され、大量データのロードやエクスポートに関する新機能も導入された。例えば、大規模な行をエクスポートする際に「COPY」コマンドを使用すると、パフォーマンスが最大で2倍向上する。
パーティションテーブルで識別列と排他制約を使用できるようになった。
リモートPostgreSQLインスタンスでクエリを実行するために使用されるPostgreSQL外部データラッパ(postgres_fdw)が、より効率的な処理のためにEXISTSやINサブクエリをリモートサーバにプッシュすることもできる。
この新しいコレーションプロバイダーを使用することで、PostgreSQLをどこで実行しても、テキストベースのクエリが同じ並べ替え結果を返すことが保証される。
論理レプリケーションは、さまざまなユースケースでデータをリアルタイムにストリーミングするために使用される。従来は、メジャーバージョンアップの際に論理レプリケーションスロットを削除する必要があり、アップグレード後にデータをサブスクライバに再同期する必要があった。PostgreSQL 17以降では、論理レプリケーションスロットを削除する必要がなくなり、論理レプリケーションを使用する際のアップグレードプロセスが簡素化される。
PostgreSQL 17には、論理レプリケーションのフェイルオーバー制御が追加されており、高可用性環境での耐障害性が向上している。さらに、物理レプリカを新しい論理レプリカに変換するためのコマンドラインツール「pg_createsubscriber」も導入されている。
PostgreSQLに新しいTLS(Transport Layer Security)オプション「sslnegotiation」が追加され、「ALPN」(ALPNディレクトリにpostgresqlとして登録済み)を使用して直接TLSハンドシェイクが可能になった。メンテナンス操作を実行する権限をユーザーに付与する「pg_maintain」事前定義ロールも追加されている。
PostgreSQLに含まれるバックアップユーティリティー「pg_basebackup」は、増分バックアップをサポートし、フルバックアップを再構築するための「pg_combinebackup」ユーティリティーが追加された。
「pg_dump」には--filterという新しいオプションが追加され、ダンプファイルを生成する際に含めるオブジェクトを選択できるようになった。
「EXPLAIN」は、ローカルI/Oブロックの読み書きにかかる時間を表示するようになり、ネットワーク伝送用のデータ変換にかかる時間を確認できるSERIALIZEオプションと、使用メモリ量を確認できるMEMORYオプションが追加された。
PostgreSQL 17では、「pg_stat_progress_vacuum」ビューにインデックスのバキューム進行状況を報告する項目が追加された。また待機イベントに関する説明を提供する「pg_wait_events」システムビューも追加されている。「pg_stat_activity」と組み合わせて使用することで、アクティブなセッションがなぜ待機しているのかをより詳細に把握できるようになった。
Copyright © ITmedia, Inc. All Rights Reserved.