PostgreSQL 16正式リリース。フルジョインの並列性向上、論理レプリケーションによる外部へのデータ転送など新機能
今回は「PostgreSQL 16正式リリース。フルジョインの並列性向上、論理レプリケーションによる外部へのデータ転送など新機能」についてご紹介します。
関連ワード (文字列、確認、集約関数等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
オープンソースのリレーショナルデータベース「PostgreSQL 16」正式版がリリースされました(日本語のプレスリリース)。
PostgreSQLは約9万人のITエンジニアを対象にアンケートを行ったStack Overflowの調査で最も使われているデータベースとなっているなど、最近特に人気が高まっています。
参考:Stack Overflowが約9万人のITエンジニアにアンケート。最も使われている言語はJavaScript、データベースはMySQLを抜いてPostgreSQLが1位に。Stack Overflow 2023 Developer Survey
PostgreSQL 16ではクエリの並列処理、バルクデータローディング、論理レプリケーションが顕著に改善され、性能が向上しました。
また、SQL/JSON構文の追加、ワークロードの新しい監視統計、アクセス制御ルール定義の柔軟性向上など、開発者や管理者向けの新機能も多く追加されました。
並列処理の向上などによる性能向上
クエリプランナーの改良により、これまでインナージョインと左ジョインのみに対応していた並列処理が、フルジョインおよび右ジョインにも対応し性能が向上しました。
DISTINCT節またはORDER BY節を用いた集約関数を使ったクエリに対してはより最適化された計画を生成。
SELECT DISTINCTクエリに対してはインクリメンタルソートを利用し、WINDOW関数が最適化されより効率的に実行できるようになりました。
また、 COPYを使用した一括ロードが改善された結果、最大で300%の性能向上が確認されています。
x86プロセッサとARMプロセッサではSIMD命令を使用した高速化が導入され、ASCIIとJSON文字列の処理や、配列検索とサブトランザクション検索の実行時の性能が向上しました。
論理レプリケーションによる外部システムへのデータ転送
論理レプリケーションにより、他のPostgreSQLや他の外部システムへリアルタイムでデータを転送できるようになりました。
PostgreSQL 16以前ではプライマリインスタンスしかパブリッシャーになれませんでしたが、PostgreSQL 16ではスタンバイインスタンスで論理デコードを実行する機能が追加されたことで、作業負荷を分散できるようになりました。
JSONデータを操作するSQL/JSON標準で、SQL標準ANY_VALUE集約関数が追加されます。
運用面ではページフリーズの改良が行われ、バキュームやその他のメンテナンス操作の性能向上が実現されました。
その他の追加機能などについてはリリースノートをご覧ください。