大規模サービス技術入門を通勤時に一読しましたので後で確認する自分の為に感想を書いておきます。
伊藤直也氏がはてなで実践から学んだ事をベースに、はてなの成長とともに書かれてあります。
見出し
購入に至った経緯
WEB+DB PRESSシリーズで気になっていたので読んでみました。伊藤直也氏の本というのも知らない人の本を読むよりかは書き手が見えていた方が楽しいと思って手に取りました。実際、その直感は当たりで、都度伊藤直也氏が現場で苦労している姿が見えてきたような気がします。
覚えた事・新しく知った事・感想など
全章について感想が書ければ良いのですが、特に書きたいところだけをピックアップして書いておきます。知ってそうな所は流し読みした箇所もありますので。
MySQLパーティショニング
今まで実経験でパーティショニングをやった事がなく、誰かの登壇などで話は聞いていたのでテーブルを分割するんだねという感じで知っていたのですが、実テーブルを出してどんな感じで分割するのか知る事が出来ました。ユーザテーブルをID番台で分けたり、テーブル別に分けたり、サーバを跨ぐとjoin出来ない点を注意したりなど。
MySQLで有名なギークの方のトーク会みたいなのに行った時に聞いたのですが、パーティショニングするのはそもそもDB設計が悪いという事も聞きました。でも実際凄いレコード数だと設計云々でなくパーティショニングしないと入らないような感じがするのですが、どうなんでしょう。今度MySQLで有名なギークの方の本やwebなどをもうちょっと詳しく読んでみたいと思います。
個人的にも出来ればパーティショニングはやりたくないですね。本来気にしなくて良いような事を開発する際に前提として常に設計で考慮し続けるのは結構なコストに感じます。
MySQLインデックス
インデックスの知見は本当に大事だと思いますし重宝します。どういう仕組みでインデックスは使われているのか、それを知らないといくらEXPLAINで確認していたとしても、ちょっと複雑になると全然わからなくなります。
ここを読んだだけでインデックスの知見がたっぷり吸収出来るというわけではありませんが、一つの知見として吸収しておけば良いと思いました。
自分はインデックスについては良く調べる事が多く、MySQLで有名なギークの方のwebのインデックスEXPLAINについての記事は何回も読み直しました。
MySQLレプリケーション スケールアウト
レプリケーションについての説明、SELECT文はスレーブから実行すれば負荷分散できるよとか。自分もレプリケーションについては色々と試した事があり、実践経験もあります。
冗長性
サーバ構成に冗長性を持たせて稼働率をあげます。
結構こちらに書いた事と被った感想になってしまいました。
まとめ
他にははてなの検索について結構なボリュームで紹介されています。検索エンジンを使用したい場合や検索サービスの場合は良くよんでおいて損はなさそうです。
書いてみてわかったのですが、全然読み込みが足りないようでした。また読んで追記しておきます。