PostgreSQL 12 リリース

PostgreSQL チームは、オープンソース リレーショナル データベース管理システムの最新バージョンである PostgreSQL 12 のリリースを発表しました。
PostgreSQL 12 では、特に大量のデータを操作する場合のクエリ パフォーマンスが大幅に向上し、ディスク領域全体の使用も最適化されています。

新機能は次のとおりです。

  • JSON パス クエリ言語の実装 (SQL/JSON 標準の最も重要な部分)。
  • 共通テーブル式 (WITH) の実行の最適化。
  • 生成された列のサポート

また、コミュニティは PostgreSQL の拡張性と信頼性にも取り組み続け、国際化のサポート、認証機能を開発し、システムを管理する簡単な方法を提供します。

このリリースにはプラガブル ストレージ エンジン用のインターフェイスの実装が含まれており、開発者は独自のデータ ストレージ メソッドを作成できるようになりました。

パフォーマンスの向上

PostgreSQL 12 には、インデックス作成およびパーティショニング システムのパフォーマンスとメンテナンスが大幅に改善されています。

PostgreSQL の標準インデックス作成タイプである B ツリー インデックスは、頻繁なインデックス変更を伴うワークロード向けにバージョン 12 で最適化されました。 PostgreSQL 12 の TPC-C ベンチマークを使用すると、スペース使用量が平均 40% 削減され、クエリ パフォーマンスが全体的に向上することが実証されました。

パーティション分割されたテーブルに対するクエリは、特にデータ配列の限られた部分のみを操作する必要がある数千のパーティションで構成されるテーブルの場合に顕著に改善されました。 INSERT と COPY を使用してパーティション テーブルにデータを追加するパフォーマンスが向上し、クエリをブロックせずに新しいパーティションをアタッチできる機能も向上しました。

PostgreSQL 12 では、インデックス作成に次のような追加の改善が加えられ、全体的なパフォーマンスに影響を与えています。

  • GiST、GIN、SP-GiST インデックス タイプの WAL を生成する際のオーバーヘッドを削減。
  • GiST インデックス上にいわゆるカバーインデックス (INCLUDE 句) を作成する機能。
  • 距離演算子 (<->) と SP-GiST インデックスを使用して「最近傍」クエリ (k-NN 検索) を実行する機能。
  • CREATE STATISTICS を使用した最共通値 (MCV) 統計の収集のサポート。これは、値が不均一に分散している列を使用する場合に、より適切なクエリ プランを取得するのに役立ちます。

PostgreSQL 11 で導入された LLVM を使用した JIT コンパイルがデフォルトで有効になるようになりました。 JIT コンパイルにより、WHERE 句、ターゲット リスト、集計、および一部の内部操作の式を操作するときのパフォーマンスが向上します。 これは、LLVM を使用して PostgreSQL をコンパイルした場合、または LLVM を有効にして構築された PostgreSQL パッケージを使用している場合に使用できます。

SQL 言語機能と標準互換性の向上

PostgreSQL 12 では、SQL/JSON 標準で定義された JSON パス式を使用して JSON ドキュメントをクエリする機能が導入されました。 このようなクエリでは、JSONB 形式で保存されたドキュメントの既存のインデックス作成メカニズムを利用して、データを効率的に取得できます。

WITH クエリとも呼ばれる共通テーブル式は、PostgreSQL 12 の置換を使用して自動的に実行できるようになり、多くの既存のクエリのパフォーマンスの向上に役立ちます。 新しいバージョンでは、WITH クエリの置換部分は、それが再帰的でなく、副作用がなく、クエリの後続の部分で XNUMX 回だけ参照される場合にのみ実行できます。

PostgreSQL 12 では、「生成された列」のサポートが導入されています。 SQL 標準で説明されているこの列タイプは、同じテーブル内の他の列の内容に基づいて値を計算します。 このバージョンでは、PostgreSQL は計算値がディスクに保存される「保存された生成列」をサポートします。

国際化

PostgreSQL 12 では、ユーザーが「非決定的照合順序」を定義できるようにすることで、ICU 照合順序のサポートが拡張され、たとえば、大文字と小文字を区別したりアクセントを区別したりしない比較が可能になります。

認証

PostgreSQL は、追加のセキュリティと機能を提供するいくつかの機能拡張により、強力な認証方法のサポートを拡張します。 このリリースでは、GSSAPI インターフェイスを介した認証のためのクライアント側およびサーバー側の暗号化と、PostgreSQL が OpenLDAP でコンパイルされるときに PostgreSQL が LDAP サーバーを検出する機能が導入されています。

さらに、PostgreSQL 12 は多要素認証オプションをサポートするようになりました。 PostgreSQL サーバーは、clientcert=verify-full を使用して、対応するユーザー名を持つ有効な SSL 証明書を提供することをクライアントに要求し、これを別の認証方法要件 (例: scram-sha-256) と組み合わせることができるようになりました。

行政

PostgreSQL 12 では、REINDEX CONCURRENTLY コマンドを使用してノンブロッキング インデックスの再構築を実行する機能が導入されました。 これにより、ユーザーは長時間にわたるインデックスの再構築中に DBMS のダウンタイムを回避できます。

さらに、PostgreSQL 12 では、pg_checksums コマンドを使用して、シャットダウン クラスター内のページ チェックサムを有効または無効にすることができます。 以前は、ディスクに保存されているデータの整合性を検証するのに役立つ機能であるページ チェックサムは、PostgreSQL クラスターが initdb を使用して初期化されている場合にのみ有効にすることができました。

出所: linux.org.ru

コメントを追加します