PostgreSQL 11が正式リリース。ハッシュパーティショニングやJITコンパイルによる高速化、ストアドプロシージャでのトランザクションサポートなど
PostgreSQLのグローバルデベロップメントグループは、PostgreSQL 11の正式リリースを10月18日付けで発表しました。
発表文ではPostgreSQL 11の主な新機能を次のように説明しています。
PostgreSQL 11 provides users with improvements to overall performance of the database system, with specific enhancements associated with very large databases and high computational workloads. Further, PostgreSQL 11 makes significant improvements to the table partitioning system, adds support for stored procedures capable of transaction management, improves query parallelism and adds parallelized data definition capabilities, and introduces just-in-time (JIT) compilation for accelerating the execution of expressions in queries.
PostgreSQL 11は、データベースシステム全体の性能向上、とりわけ大規模データベースや高負荷のワークロードにおける性能が大きく向上しています。さらに、PostgreSQL 11ではテーブルパーティショニング機能の大幅な改善、ストアドプロシージャでのトランザクション管理機能、クエリの並列性の向上、データ定義機能における並列処理の追加、そしてクエリ内の評価式を実行する際のJITコンパイルの導入などが行われています。
これらの主な機能について紹介しましょう。
ハッシュパーティショニング
パーティショニング機能では、これまでのPostgreSQLで備えていたリストパーティショニング、レンジパーティショニングに加えて、新しくハッシュキーを用いてテーブルを分割するハッシュパーティショニングが追加されました。
ハッシュを用いることで複数のテーブルにまんべんなくデータを分散できるため、効率よい分散処理が期待できます。また、これに合わせてデータが更新されたときに自動的に適切なパーティションに行を移動する機能なども搭載されました。
ストアドプロシージャでのトランザクションサポート
ストアドプロシージャ内でトランザクションを管理できるようになり、サーバサイドでより複雑なデータベース処理が可能になりました。
並列処理の向上
PostgreSQL 11では、パーティショニングされたデータに対してパラレルシーケンシャルスキャンとハッシュジョインによって、並列処理の効率性が向上しています。またUNIONを用いたSELECT文でも並列処理を行うようになりました。
またCreate IndexやCreate Table、マテリアライズドビューの作成などのデータ定義文でも並列処理をサポートしました。
評価式に対するJITコンパイルの採用
クエリ実行時のWhere節の評価式などに対するJIT(Just-in-Time)コンパイラの導入により、実行速度が向上しています。
あわせて読みたい
Cloud Foundry Foundationが「Eirini」プロジェクト発表。Diegoの代わりにKubernetesをオーケストレーションで利用可能に
≪前の記事
AWSの仮想プライベートサーバ(VPS)「Amazon Lightsail」、数クリックでMySQLなどのマネージドデータベースが設定可能に