2012年04月02日

2709円でこんなに濃厚なコストパフォーマンスがアホみたいに高い本は読んだ事無いし、Web関連のエンジニアをやっている人は必ず読んだ方が良いし、特にどのレイヤをやるかに関わらずエンジニアを目指す学生さんも卒業までには読んでおいたほうが良い本でした。

なんか誤解が多そうなんで追記しておくと、本書は「カジュアルなデータベース*利用者*のための入門本」ではなくて「本質的なデータベース技術の知見を得る為の入門本」である。ちゃんとタイトルだってデータベース技術って書いてあるでしょ?

明日着でWDP献本先と同住所に送付さ せていただきます。ご一読いただき、コメントなどいただけると大変ありがたい です。 明日発売なので念のためご連絡させていただきました。
というメールを3月8日に頂いて、実物が届いたのが翌日だったのですがチビチビ読んでてやっとさっき全部読み終わって、こんな出遅れたエントリになったよ!

ページが後ろになるにつれて、より実践的な話題になるのですが第一章で「学生の時はデータベース技術の必要性が身体で理解出来ていなかったうんうん」のような事を書いてある通り、最初はデータベースが必要な理由をわかりやすく解説し、DBにつきもののインデックスの必要性やアルゴリズム等の解説、RDBにつきものの正規化の話題も出るけど現実的な落としどころの考え方も一緒に書いているので、これを読んだ学生が正規化厨になるのに歯止めをかけている。
その後、SQLの基本的な使い方を解説をし、レプリケーションの使い方や、 DROP TABLE とか間違えて打ち込んだ時の為の予防策、トランザクションが必要とされる理由、無いとどうなるかと言った話題で導入部は終わります。

後半からはハードウェアの視点から見たデータベースのパフォーマンスに付いて、HDD/SSD/Fusion-IOなどの製品でのパフォーマンス比較「単純にSSDにしたからといって Insert 性能があがらない、ではどうすればよいのか?」といった業務に直結するような知識も網羅されています。

後半は RDBMS だけでは無く NoSQL 製品への言及や産まれて来た背景、松信さんの経歴による MySQL ひいき等も無く、 NoSQL を選ぶ事でのメリットデメリットも言及してあります。全体的な論調としては流行りにただ流されるのではなく、正しく製品の特徴を理解し納得して選定しましょうと口を酸っぱく書いてありますけどねw僕も同意ですが。

終盤に行くにつれて松信さんが MySQL 社や Mobage で培った知見をフル動員した(ソーシャルゲームだとどうなる的なのも多い)、高トラフィックを捌く為のデータベース設計、ハードウェアに合わせたチューニング、運用、トラブルシューティングといった話題がてんこもりです。

僕個人的な見所は、 MySQL hack / debug に関する部分でしょうか。原因不明のトラブルを gdb を用いて順に沿って解説しているのですが、所々に松信さんがどういう思考で手段を選んだのかという解説があるので、ただ単純な gdb デバッグの解説とくらべて万倍参考になります。まるで松信さんとマンツーマンで gdb デバッグ & パッチの書き方講座を受けてる間隔になって、この部分だけでも3000円未満は安いくらいですね。

全体的にどのトピックに関しても「これはこうこうこういう背景(実装/アルゴリズム/IOの最大性能)があるので、こうする理由はこうである」のような形で、松信さんの考察が理路整然と中立的な視点で言及されているので、教科書的な本よりも数段上の知見が得られる事でしょう。

また、本の趣旨としても MySQL 本ではなく将来的にどんな新しい技術が出て来ても普遍的になるような考え方を持って貰えるように作られているので、将来新しい技術が出て来て困った時に、松信さんにカジュアルに相談するかのように本書を手に取れば迷いが解決しそうな気がしています。

まとめ

と言う事でダラダラと書きましたが、Web関連のエンジニアをやる人は必ず全部読んだほうがいいので皆買いましょう!Web関連企業は会社の金でかって5冊ずつオフィスに常備しましょう!
Facebook での知見を元にした松信先生の次回作にも期待してます!

Webエンジニアのための データベース技術[実践]入門 (Software Design plus)
松信 嘉範
技術評論社
売り上げランキング: 3297

追記

この本が id:kumonopanya が軽く数ページ読んだだけって言ってた本の現在の姿になります。


自分が読んで理解出来なかったからといって、そういうよく考えない決めつけはしちゃ駄目だよって松信先生が親切丁寧に書いているので(実際には、自分で正しく物事を見極めてエンジニアリングしろ的な事を随所に書いてます)、エンジニア or 開発する人間であるならば、この本を10回読んで感想を書く事 > id:kumonopanya
最初の頃は誤字脱字系をメモってたんだけど、だんだん面倒くなったw
あと DBD::mysql を DBD::MySQL って書いてあるとこも気持ち悪いからなおして!

Posted by Yappo at 2012年04月02日 17:11 | TrackBack | tech
Comments
Post a comment









Remember personal info?






コメントを投稿する前に↓の場所にnospamと入力してください。