PostgreSQL

PostgreSQLとは

PostgreSQL(ポストグレスキューエル、通称 Postgres)は、多機能さと堅牢さで評価されるオープンソースの RDBMS です。特定企業ではなくコミュニティが開発を主導しており、標準 [[SQL]] への準拠度が高いことでも知られます。

[[リレーショナルデータベース]] としての基本に加え、「RDB の枠を超えた機能」を1つのデータベースで使えるのが持ち味です。

特徴

  • 豊富なデータ型 — 数値・文字列だけでなく、配列、範囲型、UUID、そして JSONB([[JSON]] を効率的に格納・検索できる型)まで標準対応
  • 拡張機能(EXTENSION) — 地理情報の PostGIS、ベクトル検索の pgvector など、後から機能を追加できる
  • 全文検索を内蔵 — 追加のミドルウェアなしで [[全文検索]] の基本ができる
  • 堅牢なトランザクション — MVCC(多版型同時実行制御)により、読み取りと書き込みが互いをブロックしにくい

「とりあえず Postgres にしておけば、後から要件が増えても拡張で対応できる」ことが採用理由になりやすいデータベースです。

MySQLとの比較

PostgreSQLMySQL
開発主体コミュニティOracle 社
性格多機能・標準準拠シンプル・Web実績豊富
JSON対応JSONB が強力JSON 型あり
標準ポート54323306

[[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 の標準ポートです。