PostgreSQL
PostgreSQLとは
PostgreSQL(ポストグレスキューエル、通称 Postgres)は、多機能さと堅牢さで評価されるオープンソースの RDBMS です。特定企業ではなくコミュニティが開発を主導しており、標準 [[SQL]] への準拠度が高いことでも知られます。
[[リレーショナルデータベース]] としての基本に加え、「RDB の枠を超えた機能」を1つのデータベースで使えるのが持ち味です。
特徴
- 豊富なデータ型 — 数値・文字列だけでなく、配列、範囲型、UUID、そして JSONB([[JSON]] を効率的に格納・検索できる型)まで標準対応
- 拡張機能(EXTENSION) — 地理情報の PostGIS、ベクトル検索の pgvector など、後から機能を追加できる
- 全文検索を内蔵 — 追加のミドルウェアなしで [[全文検索]] の基本ができる
- 堅牢なトランザクション — MVCC(多版型同時実行制御)により、読み取りと書き込みが互いをブロックしにくい
「とりあえず Postgres にしておけば、後から要件が増えても拡張で対応できる」ことが採用理由になりやすいデータベースです。
MySQLとの比較
| PostgreSQL | MySQL | |
|---|---|---|
| 開発主体 | コミュニティ | Oracle 社 |
| 性格 | 多機能・標準準拠 | シンプル・Web実績豊富 |
| JSON対応 | JSONB が強力 | JSON 型あり |
| 標準ポート | 5432 | 3306 |
[[MySQL]] とどちらを選ぶかは、複雑な集計や JSON 活用が多いなら PostgreSQL、チームの経験や既存資産があるなら MySQL、といった観点で判断します。
初学者向けポイント
- 標準ポートは 5432番。psql コマンドや GUI ツール(pgAdmin など)で接続する
- Supabase、AWS RDS、Cloud SQL など、PostgreSQL ベースのマネージドサービスが近年豊富 — 個人開発でも触れる機会が多い
- 「テーブルは RDB らしく正規化し、形が定まらない部分だけ JSONB 列に入れる」というハイブリッド設計が実務でよく使われる
- SQL の学習内容は MySQL とほぼ共通 — どちらで練習しても損はない
- 付属の
pg_dumpで中身を SQL テキストへ書き出せる。MVCC のおかげで、特別なオプションを付けなくても既定で一貫した1時点を読み続けられるのが強み([[データベースのダンプとリストア]])
関連技術とのつながり
- [[リレーショナルデータベース]] — PostgreSQL は多機能型の代表的 RDB
- [[SQL]] — 標準SQLへの準拠度が高い
- [[MySQL]] — 二大オープンソースRDBのもう一方
- [[JSON]] — JSONB 型で文書データも扱える
- [[全文検索]] — 内蔵機能として利用できる
- [[データベースのダンプとリストア]] — pg_dump が標準添付。既定で一貫した時点のダンプを取れる
Q: PostgreSQL の開発を主導しているのはどれ?
- [ ] Oracle 社
- [x] コミュニティ
- [ ] Microsoft 社
解説: PostgreSQL は特定企業ではなくコミュニティ主導で開発されています。Oracle 社が主導するのは MySQL です。
Q: PostgreSQL で JSON を効率的に格納・検索できる型はどれ?
- [x] JSONB
- [ ] PostGIS
- [ ] UUID
解説: JSONB は JSON を効率的に扱う型です。PostGIS は地理情報の拡張機能、UUID は識別子の型です。
Q: PostgreSQL の標準ポート番号はどれ?
- [ ] 3306
- [x] 5432
- [ ] 8080
解説: PostgreSQL は5432番が標準です。3306は MySQL の標準ポートです。