Kōhei Yamamoto

『High Performance PostgreSQL for Rails』を読んだ

The Pragmatic Bookshelf (pragprog.com)から出ている『High Performance PostgreSQL for Rails』を読んだ。

概要

PostgreSQLを用いたRailsアプリケーション1に対して、さまざまな手段でその性能を向上させる方法を紹介している。目次を見るとわかるとおり、その目的に役立つPostgreSQLの機能やActive Recordの利用方法が広くカバーされている。

感想

PostgreSQLは以前業務で担当していたサービスや小さなアプリで使っていたりはしたが2PostgreSQLが支配的となっている2025〜2026年というタイミングで、アプリケーションの性能向上に有効な機能群を総ざらいできたのでよかった。

個人的に勉強になったのは次のような項目。レプリケーションやパーティショニングなどシステムアーキテクチャに近い話も充実しているが、個人的に今回気にしていたのはもう少しアプリケーション層寄りの話だった。

書籍の最初のほうで、本番DBの個人情報をマスキングしつつ、似たような性質のデータに置き換えた性能検証用DBを作る方法から議論が始まるのが、“High Performance”を銘打っているだけあると感じておもしろかった。

『Rails Scales!』の感想でも書いたこととして、アプリケーション開発者からの視点での最適化に焦点を絞ったDB本が意外とない(SQL、テーブル設計、DBサーバ管理などの本はある)気がしており、その観点で体系的に知識を得られるのが非常によいと思う。

書籍が日本円にすると結構な値段3になるのと、網羅的なのでページ数も多いという点で、邦訳されないと人に勧めにくいというのが難しいところ。原著を買う場合は、pragprogはそれなりの頻度でセールをしているので、ニュースレターを購読してセール開始のタイミングを把握するのがいいと思う4

脚注

  1. 書籍内ではサンプルアプリとして https://github.com/andyatkinson/rideshare を使う

  2. 当時はHeroku Postgresを使っていた

  3. 執筆時点で5000円を超える

  4. Dave Thomasのエッセイが送られてくることもある