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 .. AS
、SELECT INTO
、 CREATE MATERIALIZED VIEW
クエリが含まれます。
PostgreSQL 11では、クエリ実行中に特定の問い合わせ式の実行を高速化するジャストインタイム(JIT)コンパイルのサポートが導入されています。LLVMプロジェクトを利用したPostgreSQLのJITコンパイルは、WHERE句、ターゲットリスト、集約、投影、および一部の内部操作で問い合わせ式の実行を高速化します。
JITコンパイルを利用するには、LLVM依存関係をインストールする必要があり、さらにPostgreSQL設定ファイルで jit = on
を設定するか、PostgreSQLセッションでSET jit = on
を実行する必要があります。
リレーショナルデータベースであるPostgreSQLの機能強化は、アクティブなユーザコミュニティからのフィードバックとPostgreSQLに取り組む人たちの努力なしにはできません。以下は、PostgreSQL 11に含まれている多くの機能のうち、ユーザエクスペリエンスを向上させるために設計されたものです。
NULL
でないALTER TABLE .. ADD COLUMN .. DEFAULT ..
コマンドがテーブルを全体を書き換えずに実行できるようにしたことで、このコマンドのパフォーマンスが大幅に向上しました。RANGE
がPRECEDING
/FOLLOWING
、 GROUPS
モードやフレーム除外オプションで使えるようになりました。
-PostgreSQLのコマンドラインインタフェースにキーワード "quit"と "exit"を含めることで、コマンドラインツールから簡単に抜けられるようになりました。このリリースに含まれる機能の全リストは リリースノートにありますのでご覧ください。 こちらからもご覧いただけます
PostgreSQLは世界で最も先進的なオープンソースデータベースであり、何千人ものユーザ、貢献者、企業、組織からなるグローバルコミュニティがあります。PostgreSQLプロジェクトは、カリフォルニア大学バークレー校を皮切りに、30年以上ソフトウェア工学に基づいた開発により先進的な進歩を続けています。PostgreSQLの成熟した機能セットは、独自のデータベースシステムにマッチするだけでなく、高度なデータベース機能、拡張性、セキュリティ、および安定性にも優れています。 PostgreSQLについてもっと知って頂き、私たちのコミュニティにご参加下さいPostgreSQL.org
For explanations of the above features and others, please see the following resources:
There are several ways you can download PostgreSQL 11, including:
PostgreSQL 11 comes with HTML documentation HTML documentation as well as man pages, and you can also browse the documentation online in both HTML and PDF formats
PostgreSQL uses the PostgreSQL License, a BSD-like "permissive" license. This OSI-certified license is widely appreciated as flexible and business-friendly, since it does not restrict the use of PostgreSQL with commercial and proprietary applications. Together with multi-company support and public ownership of the code, our license makes PostgreSQL very popular with vendors wanting to embed a database in their own products without fear of fees, vendor lock-in, or changes in licensing terms.
Website
All logos are available for modification and redistribution under The PostgreSQL Licence. The PostgreSQL name and logo are trademarks of The PostgreSQL Community Association of Canada.
PostgreSQL enjoys the support of numerous companies, who sponsor developers, provide hosting resources, and give us financial support. See our sponsors page for some of these project supporters.
There is also a large community of companies offering PostgreSQL Support , from individual consultants to multinational companies.
If you wish to make a financial contribution to the PostgreSQL Global Development Group or one of the recognized community non-profit organizations, please visit our donations page.