Azure Database for PostgreSQL への移行サービスが Preview されましたね。
Public preview: Migration service in Azure Database for PostgreSQL | Azure updates | Microsoft Azure
今まで PostgreSQL を触ったことが無かったので、これを機にちょっと触ってみました。
環境構築(Docker)
今回はちょっと触ってみたいだけなので、Docker Compose を利用してサンドボックス環境を作成します。削除も簡単ですしね。
docker-compose.yml は下記のように指定します。
version: '3'
services:
db:
image: postgres:14
container_name: postgres_pta
ports:
- 5433:5432
volumes:
- db-store:/var/lib/postgresql/data
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
volumes:
db-store:
docker compose up -d を実行すると postgres_pta コンテナが起動。docker desctop 上からコンテナ内のターミナルに接続できるので、今回はそれを使って操作していきます。

DB操作
postgres をインストールすると、DB を操作するための psql コマンドが使えるようになるみたいですね。OSS だけあって GUI ツールもいくつか提供されているようですが、今回はシンプルにいきたいので psql で操作していきましょう。
create database mydb を実行するとあっというまに DB が作成されました。めちゃ早い。

作成したDBにログイン。

テーブルを作成してデータを挿入、テーブルの中身を見てみます。

おお~。ここまでかなり軽快に操作できました。
vs SQL Server vs MySQL
さらっと触ってみた&ドキュメントを読んでみて、SQL Server と比べても遜色無いように感じましたね。PostgreSQL の方が OSS で完全無料なので、より気軽に使えるのは PostgreSQL の方かな。
SQL Server は RDB で PostgreSQL は ORDB なんですが、ORDB は RDB としても利用できるらしい。RDB⊂ORDB ってところなのかな。そういう意味でも PostgreSQL に軍配が上がりそう。
PostgreSQL のデメリットとしては、他の RDBMS に比べて処理が遅いそう。今回はすごくシンプルな操作しかしていなかったのであまり気にならなかったんですが、もっと複雑かつデータ量が多いような状態だと影響があるんでしょうね。MySQL と比較したら、MySQL は読み取りに強くて、PostgreSQL は複雑な書き込みに強いと。総括すると、PostgreSQL は仕組みとしては高機能なんだけど、読み取り処理速度に難あり……ってことなんだろうな~。
システム開発していて、やっぱりなんだかんだ求められるのはデータアクセス速度だったりするので、大きいサービスに PostgreSQL を採用するのはまだちょっと怖いかなと思いました。でも OSS だし導入もそこまで難しくないし、個人サービスとかに使ってみるのはありかも。Azure を使うような開発って金額的に大きいサービスなイメージがあるけど、そういう意味では PostgreSQL の使いどころってあるのかなあ。
参考
PostgreSQL を Windows にインストールするには #Windows – Qiita
Dockerでpostgresqlを構築する (zenn.dev)
docker上で動かしているpostgresに接続する #Docker – Qiita
PostgreSQL | データベースを作成する(CREATE DATABASE) (javadrive.jp)