PostgreSQL


オープンソースのリレーショナルデータベース管理システム (RDBMS) 。
問い合わせ言語に SQL を用い、標準 SQL の大部分とその他の先進的な機能をサポートする本格的なRDBMS。

PostgreSQL 9.6 検証報告

2016 年リリース予定の PostgreSQL 9.6 の主要な新機能について実際に動作検証を行った結果について報告します。

PostgreSQL 9.6 では、パラレル問い合わせ処理、VACUUM における XID 凍結処理の改善、ストリーミングレプリケーションの拡張、全文検索におけるフレーズ検索、多 CPU サーバにおける性能向上、postgres_fdw の改善、ほか多くの機能追加や性能改善が行われています。本検証ではそれら新機能の追加に関する検証を、2016 年7月21日リリースされた PostgreSQL 9.6 beta 3 を用いて実施しました。

本内容は、バージョン 9.6 beta 3 時点での機能実装です。バージョン 9.6 の本リリースまでにいくつか削除や変更がされる可能性があります。

検証レポート

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

本検証レポートの他にも多数の改善がなされており、それらは PostgreSQL 9.6 ドキュメントのリリースノートに記載されています。

PostGIS(地理情報システムを実現するための拡張モジュール)

1 PostGIS とは

PostGIS は、地理情報システム(Geographic Information Systems 、GIS)を実現するための PostgreSQL の拡張モジュールです。PostgreSQL 本体と独立にオープンソースソフトウェアとして開発されています。

PostGIS により、専用のデータ型が追加され、GIS オブジェクト、すなわち緯度経度による位置を持った地点や経路線、領域などの要素を格納することができます。また、GIS オブジェクトを操作する多数の関数が追加されます。SQL からテーブルに登録した GIS オブジェクトのデータ演算をしたり、検索条件に使うことができます。さらに、GiST インデックスを使った空間検索や近傍点検索が可能です。

続きを読む

pg_repack (オンラインテーブル再編成ツール)

pg_repack は PostgreSQL のテーブルをオンラインで再編成できるツールです。本記事では pg_repackについて紹介します。

良く知られている通り、PostgreSQL は追記型アーキテクチャを採用しています。UPDATE や DELETE をしても旧データを格納した行はしばらく物理ファイル上に残り、これを VACUUM コマンドや自動 VACUUM で整理して、その領域を再利用可能にする仕組みとなっています。何らかの理由でこれらの手動・自動の VACUUM 処理が実行されなかった場合には、データ格納に使われない不要領域が増加し、性能劣化の原因となります。そのような場合には、CLUSTER コマンドや VACUUM FULL コマンドを使って、テーブルの再編成をするのですが、これらのコマンドは強いロックを取得するため、サービス中の適用が難しいという課題がありました。

pg_repack は CLUSTER または VACUUM FULL と同様に不要領域の削除や行の並び替えることができますが、処理中に強いロックをごく短時間しか取得しないため、サービス中にも実施が可能となります。

続きを読む