PostgreSQLの中身を歩いて学ぶ ― 3D都市可視化ツール「PGSimCity」
投稿日:2026.07.29
CATEGORY
- Web開発
PostgreSQLの内部動作を、歩いて見に行く
PostgreSQLの内部動作を、3D都市として歩いて探索できるオープンソースの教育用Webアプリ「PGSimCity」が公開されました。開発したのはPostgreSQLの専門家として知られるPostgres.ai創業者のNikolay Samokhvalov氏です。2026年7月27日頃に公開されたばかりの新しいプロジェクトで、GIGAZINEが7月28日付けで紹介したほか、Gizmodoでも取り上げられ、X上でも話題になりました。
ライブサイト(nikolays.github.io/PGSimCity)で無料で試すことができ、ソースコードはGitHub(NikolayS/PGSimCity)にApache-2.0ライセンスで公開されています。three.js r185とTypeScriptで構築され、ビルドツールにはViteを使い、フレームワークは使用していません。画面内で「T」キーを押すと14章構成のガイドツアーが始まり、複数の「地区」を巡りながらPostgreSQLの各機能を見て回れる仕組みです。
地区が示す処理の流れ ― 接続からレプリケーションまで

PGSimCityの街は、PostgreSQLが1つのクエリを処理する順序をそのまま地図に落とし込んでいます。
接続管理の区画では、Postmasterが「受付窓口」としてクライアントの接続をバックエンドプロセスに割り当てる流れが表現されています。クエリ処理は「Query Lab」という区画で、SELECT文がParser→Rewriter→Planner→Executorという4つの工程を通って実行計画に変換される過程を見ることができます。
メモリ管理の区画では、shared_buffersの動作と、8KiB単位のページをディスクから読み込む仕組み、そして使用頻度の低いバッファを入れ替えるclock-sweep(クロックスイープ)というアルゴリズムが可視化されています。ストレージとWAL(先行書き込みログ)の区画は、変更内容を先にログへ記録するWALバッファの仕組みと、checkpoint_completion_targetという設定値に沿ってペース配分されるチェックポイント処理――障害が起きてもデータを復旧できるようにする機構――を見せています。
保守の区画は、autovacuumが不要になった行(dead tuples)を回収する仕組み、xmin horizonという値がクリーンアップの実行をブロックする条件、そしてインデックスの更新を省略できるHOT updateの仕組みを表現しています。レプリケーションの区画では、WALがプライマリからスタンバイサーバーへ送信され、再生される流れが示されています。
「動かして学べる」設計がDB運用教育に効く理由
私たちの見立てでは、Web開発の内製化を進める企業にとってDB運用のトラブルシュートは特につまずきやすい領域です。「接続数が急に増えて詰まった」「autovacuumが動かずテーブルが肥大化した」といった障害は、内部で何が起きているかのメンタルモデルがないと、ログの数値だけを見ても原因の判断が難しくなります。PGSimCityが可視化しているPostmasterの接続割り当て、clock-sweepによるバッファ管理、autovacuumのxmin horizonといった要素は、こうした障害の原因を突き止める際に必要になる知識と重なります。
この試みが実務者にとって示唆的なのは、DB内部で並行して動く複数の仕組み――接続管理・メモリ管理・保守処理――を同時に把握することの難しさに、空間的な比喩で挑んでいる点だと私たちは考えます。文章と静的な図だけでは、これらの要素が同時にどう影響し合うかを一度に見渡すことは難しく、PGSimCityはその難しさに対して「地区を歩いて巡る」という別の入り口を用意しています。
プロトタイプという断り書きをどう読むか
開発者のSamokhvalov氏自身は、PGSimCityを「独立した非商用の教育目的の可視化ツール」と位置づけた上で、「初期段階の未レビューのプロトタイプで、モデルと説明の両方にほぼ確実に不正確な点が含まれる」と明記しています。
この断り書きは、可視化ツールを実務に取り入れる際の使い方を示しています。PGSimCityは公式ドキュメントやソースコードの代替ではなく、内部動作の全体像をつかむための「地図」として使うのが適切です。個々の設定値やパラメータの挙動を業務で判断する場面では、PostgreSQL公式ドキュメントで裏付けを取る必要があります。
まとめ
DB運用のトラブルシュートに関わる担当者にとっての実践的な使い方は、まず「T」キーのガイドツアーで自社が運用するPostgreSQLの構成と照らし合わせ、理解が薄い区画(接続管理・メモリ管理・保守のいずれか)を特定することです。特定した区画は、PGSimCity自体ではなくPostgreSQL公式ドキュメントで裏付けを取ることが、開発者自身の断り書きに沿った正しい使い方になります。
出典:
- GIGAZINE「PostgreSQLの動作をシムシティ風の3D都市として可視化する『PGSimCity』」
- PGSimCity GitHubリポジトリ
- PGSimCity ライブサイト
- Gizmodo記事
※ この記事は AI を使用しています。Leadeas が自社開発した AI エージェント基盤で下書きを作成し、人間のレビューを経て公開しています。AI ネイティブ開発会社として自社の技術をそのまま実演する目的で、この手法を用いています。(詳しくは AI 利用ポリシー)

