PostgreSQLの特徴 ぽすとぐれすきゅーえるのとくちょう
PostgreSQLJSONB拡張機能オープンソース標準SQLMVCC
PostgreSQLの特徴について教えて
PostgreSQLとは
PostgreSQL(ポストグレスキューエル)とは、1986年にカリフォルニア大学バークレー校で開発が始まり、1996年にPostgreSQLとして公開されたオープンソースのRDBMSです。PostgreSQL Global Development Groupがコミュニティ主導で開発を続け、「PostgreSQL License」(BSDライクな制限のないライセンス)で提供されています。
PostgreSQLの最大の特徴は高度なSQL標準準拠と豊富な拡張機能です。ウィンドウ関数・CTE・再帰クエリ・全文検索・JSONBデータ型・配列型・RANGE型・地理情報(PostGIS)などSQL標準を超えた機能が充実しています。またMVCC(Multi-Version Concurrency Control)の実装が優れており、高並列環境でのロック競合を最小化します。
商用DBと比較しても遜色ない機能を持ちながら完全無料で使えるため、企業の基幹系DB・金融システム・政府機関でも採用されています。クラウドではAmazon RDS for PostgreSQL・Amazon Aurora PostgreSQL・Google Cloud SQL・Azure Database for PostgreSQLとしてマネージドサービスが提供されています。
PostgreSQLの主な特徴
| 特徴 | 説明 |
|---|---|
| 高い標準SQL準拠 | SQL:2023の主要機能をほぼ実装 |
| 豊富なデータ型 | JSONB・配列・UUID・RANGE・Geometric・ネットワークアドレス型等 |
| 拡張機能(Extensions) | PostGIS(地理情報)・pgvector(ベクトル検索)・TimescaleDB等 |
| 高度なインデックス | B-Tree・Hash・GiST・SP-GiST・GIN・BRINと多様な種類 |
| MVCC | ロックなしで並列読み書きを実現する多版型同時実行制御 |
| ロール・権限管理 | 細かいオブジェクト権限・Row Level Security |
| 論理レプリケーション | テーブル単位での複製が可能 |
| パーティショニング | 宣言的パーティショニングを標準サポート |
歴史と背景
- 1986年:UC Berkeleyで「Postgres」プロジェクト開始。Michael Stonebrakerが主導
- 1994年:AndrewYuとJolly Chenがオープンソース化し「Postgres95」として公開
- 1996年:SQLサポートを追加し「PostgreSQL」に改名。バージョン6.0リリース
- 2003年:PostgreSQL 7.4。本格的なパフォーマンス向上
- 2005年:PostgreSQL 8.0。WindowsネイティブPort・テーブルスペース等
- 2010年:PostgreSQL 9.0。Hot Standby・Streaming Replicationが強化
- 2014年:PostgreSQL 9.4。JSONB型が登場。NoSQL的な使い方が可能に
- 2022年:PostgreSQL 15。MERGE文・ソート性能向上等
- 現在:毎年新バージョンがリリース。pgvectorによりAIベクトル検索基盤としても注目
バージョン別主要機能
| バージョン | 主な追加機能 |
|---|---|
| 9.4(2014) | JSONB・マテリアライズドビューリフレッシュ |
| 10(2017) | 宣言的パーティショニング・論理レプリケーション |
| 12(2019) | 生成列・JSONPath |
| 14(2021) | 改善されたパーティション・並列クエリ強化 |
| 15(2022) | MERGE文・ICUコレーション |
| 16(2023) | 論理レプリケーション強化・並列処理改善 |
| 17(2024) | COPY強化・インクリメンタルソート改善 |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| ISO/IEC 9075 (SQL標準) | PostgreSQLが高度に準拠するSQL標準 |
| PostgreSQL Wire Protocol v3 | PostgreSQLクライアント通信プロトコル |
| RFC 4122 | UUID標準。PostgreSQLのUUID型が準拠 |