【プレスリリース】PostgreSQL 11 リリース

anzai2018/09/11 (火) - 11:43 に投稿

(本ページは  https://www.postgresql.org/about/press/presskit11/jp/ と同内容です)

2018年10月18日 PostgreSQL グローバル開発グループは本日、世界で最も先進的なオープンソースデータベースの最新バージョンである PostgreSQL 11 のリリースを発表しました。 PostgreSQL 11 では、データベースシステムの全体的な性能向上、特に非常に大きなデータベースや高い計算負荷を扱う機能拡張をユーザーに提供します。 さらに、PostgreSQL 11 では、テーブルパーティショニングの大幅な改善、トランザクション管理が可能なストアドプロシージャのサポートの追加、クエリの並列性の向上、並列化されたデータ定義機能の追加、クエリ実行を高速化する JIT (Just-In-Time) コンパイルを導入しました。

コアチームメンバーからリリースに向けて

「PostgreSQL 11 にむけて、私たち開発コミュニティは PostgreSQL が巨大データベースを扱える機能を追加することに注力しました。」ブルース・モムジャン(PostgreSQLグローバル開発グループコアチームメンバー)は言います。「トランザクション負荷に対するPostgreSQLの明らかなパフォーマンスに加えて、PostgreSQL 11 は開発者が大規模なビッグデータアプリケーションをさらに容易に処理できるようにします。」

PostgreSQL は 20 年以上オープンソースで開発されてきたお陰で、開発者にとって好ましいオープンソースのリレーショナルデータベースであり続けています。 このプロジェクトは業界全体で認知を得ており、DB-Engines の "DBMS of the Year 2017" で特集されており (https://db-engines.com/en/blog_post/76)、SD Times の "'Best in Show' in Software Development" でも特集されています (https://sdtimes.com/sdtimes-100/2018/best-in-show/database-and-database-management-2018/)。 PostgreSQL 11 は、PostgreSQL 10 が 2017 年 10 月 5 日にリリースされて以来、最初のメジャーリリースとなります。 PostgreSQL 11 のバグ修正を含む次のアップデートリリースは PostgreSQL 11.1 となり、新機能を備えた次のメジャーリリースは PostgreSQL 12 となる予定です。

堅牢性とパフォーマンスが強化されたパーティショニング

PostgreSQL 11 には、現行のリストパーティションやレンジパーティション機能に加え、ハッシュ・パーティショニングとしても知られるハッシュ・キーによるデータ分割機能が追加されています。 PostgreSQL 11 は、PostgreSQL の外部データラッパー postgres_fdw に対するパーティションの機能強化により、データ・フェデレーション機能をさらに向上させました。 パーティション管理の助けとして、PostgreSQL 11では、パーティションキーと一致しないデータの格納するデフォルトパーティションや、すべてのパーティションに渡されるパーティションテーブルのプライマリキー、外部キー、インデックス、トリガを作成する機能が導入されています。 更に、パーティションキーのデータが更新された場合、行を自動的に正しいパーティションに移動する機能もサポートされています。

PostgreSQL 11 では、新しいパーティション消去ストラテジーにより、パーティション読取時のクエリのパフォーマンスが改善しています。 さらに、PostgreSQL 11 は、ポピュラーな "upsert" 機能を分割テーブルでサポートしています。これにより、ユーザのアプリケーションコード簡素化を助け、データ送受信のネットワークオーバーヘッドを削減します。

ストアドプロシージャのトランザクションサポート

開発者は PostgreSQL で、20 年以上前からユーザー定義関数を作成することができましたが、PostgreSQL 11 までは関数内で独自のトランザクションを管理する事ができませんでした。 PostgreSQL 11 では、関数の本体内で完全なトランザクション管理を実行できる SQL プロシージャが追加され、開発者は一括データの増分値読込みのような、より高度なサーバサイドアプリケーションを作成できます。 SQL プロシージャは、 CREATE PROCEDURE コマンドで作成、CALL コマンドで実行する事ができ、サーバ側の手続き言語としては PL/pgSQL、PL/Perl、PL/Python、および PL/Tcl がサポートされています。

並列クエリ処理の強化された機能

並列シーケンシャルスキャンとハッシュジョインに加え、より効率的になった分割データのスキャンによるパフォーマンス向上に伴い、PostgreSQL 11 の並列クエリ処理のパフォーマンスが向上しました。 要素となる個々のクエリが並列化できない場合でも、PostgreSQL は UNION を使用した SELECT クエリを並列実行できるようになりました。 PostgreSQL 11 では、いくつかのデータ定義コマンドに並列処理機能が追加されています。 特に、標準の CREATE INDEX コマンド実行で生成される Bツリーインデックスが並列処理で作成されるのは注目に値します。 クエリからテーブルやマテリアライズドビューを作成するいくつかのデータ定義コマンドも並列実行可能で、これには CREATE TABLE .. ASSELECT INTOCREATE MATERIALIZED VIEW クエリが含まれます。

問い合わせ式のジャストインタイム(JIT)コンパイル

PostgreSQL 11 では、クエリ実行中に特定の問い合わせ式の実行を高速化するジャストインタイム(JIT)コンパイルのサポートが導入されています。 LLVM プロジェクトを利用した PostgreSQL の JIT コンパイルは、WHERE 句、ターゲットリスト、集約、投影、および一部の内部操作で問い合わせ式の実行を高速化します。

JIT について

JIT コンパイルを利用するには、LLVM 依存関係をインストールする必要があり、さらにPostgreSQ 設定ファイルで jit = on を設定するか、PostgreSQL セッションで SET jit = on を実行する必要があります。

一般的なユーザーエクスペリエンスの向上

リレーショナルデータベースである PostgreSQL の機能強化は、アクティブなユーザコミュニティからのフィードバックと PostgreSQL に取り組む人たちの努力なしにはできません。 以下は、PostgreSQL 11 に含まれている多くの機能のうち、ユーザエクスペリエンスを向上させるために設計されたものです。

  • デフォルト値が NULL でない ALTER TABLE .. ADD COLUMN .. DEFAULT .. コマンドがテーブルを全体を書き換えずに実行できるようにしたことで、このコマンドのパフォーマンスが大幅に向上しました。
  • INCLUDE 句を使った列の追加でインデックスが利用可能になったり、Bツリーインデックスでインデックス化できないタイプのデータにもインデックス-オンリースキャンが実行可能になるなど、インデックスの利用範囲が広がりました。
  • Window 関数の追加機能として、RANGEPRECEDING/FOLLOWINGGROUPS モードやフレーム除外オプションで使えるようになりました。
  • PostgreSQL のコマンドラインインタフェースにキーワード "quit" と "exit" を含めることで、コマンドラインツールから簡単に抜けられるようになりました。

このリリースに含まれる機能の全リストは リリースノート にありますのでご覧ください。 こちらからもご覧いただけます。

PostgreSQL について

PostgreSQL は世界で最も先進的なオープンソースデータベースであり、何千人ものユーザ、貢献者、企業、組織からなるグローバルコミュニティがあります。PostgreSQL プロジェクトは、カリフォルニア大学バークレー校を皮切りに、30 年以上ソフトウェア工学に基づいた開発により先進的な進歩を続けています。PostgreSQL の成熟した機能セットは、独自のデータベースシステムにマッチするだけでなく、高度なデータベース機能、拡張性、セキュリティ、および安定性にも優れています。 PostgreSQL についてもっと知って頂き、私たちのコミュニティにご参加下さい。

タグ