DB男子必見!「データベース技術実践入門」を読みました。

Webエンジニアのための データベース技術[実践]入門 (Software Design plus)

Webエンジニアのための データベース技術[実践]入門 (Software Design plus)

読み終わりました。データベース技術実践入門。
著者はMySQLのコンサルで有名な松信さん、非常に多岐にわたるテーマが一冊に濃縮された本であり、よくまとまっていると感じました。

感想まとめ


読んだ感想を3点でまとめてみます。

最新技術は魅力的だが罠もある。


この本の中では新しい技術であるNoSQLやSSD等の話も出てきますが、本の中で通して説明されているのは「NoSQL」や「SSD」等の枯れていない技術を使うことは危険だと説明されています。技術者の中には最新技術が従来技術を上回ると思っていても運用管理の世界では必ずしもそうではないことを自覚すべきだと再三に渡り記載されています。
おそらく筆者自身が何度も痛い目に遭ってきているのではないでしょうか。

逆に言えば、枯れている技術の信頼性と最新技術の魅力はトレードオフのような関係に
あり、重要なデータはなるべく問題が少ないデータベースに書き込み、消えても復旧可
能であったり許されるようなデータはNoSQLで書き込むという戦略が重要なんだと思います。

ソースコードリーディング、エンハンスはオープンソースデータベースの最大の魅力


自分がよく触れるデータベースは商用の大手の奴が多いのですが、バグを見つけても直せない、直してくれないような状況にフラストレーションがたまることがよくあります。
オープンソースデータベースではもちろんそんなことはありません。その代わりほぼ自分で調査が必要になります。
本書には独自の調査方法の一つとして、ソースコードリーディングとデバッグ実行による動的解析の2つの方法を紹介しています。この部分は本書の中でも一番に読みにくい箇所ではあるのですが、問題が発生した時の調査手法もまとめて紹介してくれているので、本章だけでも読む価値があると思います。
また、自分はオープンソースなソフトウェアのコミッターになったことはないのですが、色々と作法があるので作法を知らないとオープンソースエンハンス時には痛い目にあうということも書かれています。オープンソースプログラマーになる人はここだけでも読んだほうが良いかと思います。

トランザクション、ロック、インデックス等の基礎もあるよ


最近NoSQLがもてはやされているのですが、NoSQLにはトランザクションがないとかロックの機構がないものが多いです。
これがないとどんな不利益が起きるのかという事が基礎的な部分として説明されています。
それも"一貫性が保証されない"とかのよくあるデータベース文句ではなく、分かりやすいゲームの例で説明されているので、基礎を復習する意味でも良いと思います。

というわけで広く浅くよくまとめてある良書です。