PostgreSQL 11 検証報告

2018524日にbeta1がリリースされた PostgreSQL 11 の主要な新機能について動作検証を行った結果を報告します。

本検証レポートは コマンド実行手順も詳細に記載していますので、PostgreSQL 11 を使って実際に新機能を確認したい方のガイドブックとしても活用できます。

PostgreSQL 11 の主要な強化点は以下の通りです。

  • JITコンパイルの追加 [性能]

  • パーティショニングの様々な改善[機能+性能]

  • 並列実行の様々な改善[性能]

  • プロシージャ内でのトランザクション制御をサポート [機能]

  • 認証でSCRAMチャンネルバインドをサポート[セキュリティ]

  • ALTER TABLE .. ADD COLUMN の性能改善 [性能]

  • ウィンドウ関数の拡張[機能]

上記の角括弧[]内の記載は何に寄与する強化点であるかを示しています。大規模なデータを扱う場合には最初の3項が大いに貢献するはずです。特にSQL実行のための処理をネイティブコードにコンパイルしてから実行するJITコンパイルは大きな機能追加といえます。

また、Oracle Database からの移植にあたっては「プロシージャ内でのトランザクション制御」が役立ちます。SCRAMチャンネルバインドは PostgreSQLのSSL接続における認証をより安全にするもので、クラウド利用等でインターネット越しの接続をする場合に特に有益といえます。残る2つは旧来バージョンで欠けていた点が本バージョンで実現されたというべきもので、ニーズがある状況では助けとなるはずです。

本レポートではこれらの点について取り上げます。

検証レポート

レポートは以下リンクからダウンロードできます。

補足情報2

2018年10月11日にPostgreSQL11 RC1 がリリースされました。beta2、beta3、beta4に続くリリースとなります。本検証レポートを作成したbeta1時点からSCRAMチャンネルバインドについて以下の仕様変更が行われています。

  • 接続パラメータの scram_channel_binding は不採用となりました。本パラメータで指定すべき方式に tls-unique と tls-server-end-point がありましたが、このうち前者の対応が無くなり、選択肢が単一になったため、パラメータ自体が不要になったことによります。

このため、レポート 4.7節(35ページ)の接続例で scram_channel_binding=tls-unique という指定は不要となります。

補足情報1

2018年6月28日にPostgreSQL 11 beta2 がリリースされました。beta2 では beta1 に対して様々なバグ修正が適用されています。これから試してみるのであれば beta2バージョンを使うのが良いでしょう。

PostgreSQL 11 の機能の更なる詳細はPostgreSQL 11 公式ドキュメントを参照してください。未だ日本語訳は公開されていません。PostgreSQL公式ドキュメントは日本PostgreSQLユーザ会で翻訳を行っていますが、通常正式リリース後に翻訳を実施して公開するスケジュールとなっています。