Paper2 Blog

ともに、かける

失敗から学ぶRDBの正しい歩き方 Software Design plus

筆者がWeb系のシステム開発を通じて見てきたRDBアンチパターンについて記載されています。 Software Design の連載を本にまとめたもので、全20章に渡りRDBアンチパターンを紹介しています。当書籍はDBの設計に自信がない、アンチパターンを知らないといったような初学者におすすめの書籍です。

私はDBの設計・構築経験が少ないため初学者に近い立場でした。時折性能問題が発生した際に見事に解決していく同僚に憧れてこの書籍を読みましたが、良い意味で当書籍は期待外れでした。この書籍には同僚が解決していたようなレベルの話は出ておらず、もっと初歩的なお話が書かれていたようです。そして私はそれすら知らないことが多かったです。知れば知るほど自身が無知であることに気づきます。この書籍はDBに詳しい同僚を巻き込んで一緒に勉強会として読みましたが、同僚からすると基礎的な内容が多く、特に学びがなかったようです。少なくとも私にとっては様々な学びがあり、同僚も基礎として認知していたことからもコアなアンチパターンが詰まっている素晴らしい本であることは間違い無いでしょう。

例えばJSONを安易に使わない方が良いという話もとても勉強になりました。機能としてあるし、スキーマレスで使いやすさがあるので何も知らないと使い始めてしまいそうに思います。筆者なりの使っても良いパターンの考察など含め大変勉強になりました。また、キャッシュの考え方は一般的なものでもあるので私はとても良い整理になりました。

コラム記事だったのか1章がとても軽く、ささっと読めます。少し凝ったタイトルもありますが、タイトルを読んで内容を推測できなければ読んでみる価値はあるかも知れません。

(参考)書籍の目次

  • 第1章 データベースの迷宮
  • 第2章 失われた事実
  • 第3章 やり過ぎたJOIN
  • 第4章 効かないINDEX
  • 第5章 フラグの闇
  • 第6章 ソートの依存
  • 第7章 隠された状態
  • 第8章 JSONの甘い罠
  • 第9章 強過ぎる制約
  • 第10章 転んだ後のバックアップ
  • 第11章 見られないエラーログ
  • 第12章 監視されないデータベース
  • 第13章 知らないロック
  • 第14章 ロックの功罪
  • 第15章 簡単過ぎる不整合
  • 第16章 キャッシュ中毒
  • 第17章 複雑なクエリ
  • 第18章 ノーチェンジ・コンフィグ
  • 第19章 塩漬けのバージョン
  • 第20章 フレームワーク依存症