DoorKeeper
http://sqlap.doorkeeper.jp/events/19944
以下の書籍をターゲットとした読書会なのです。
![]() | SQLアンチパターン (2013/01/26) Bill Karwin 商品詳細を見る |
場所は品川シーサイドの株式会社マーベラスさんです。
参加者は16名かな?
この読書会が始まって2年余り、遂に最終章ということで、この章を寄稿された奥野幹也さんが来てくださいました。
『SQL アンチパターン』読書会最終回のゲストは第25章「砂の城」に寄稿くださった奥野( @nippondanji ) さん。御本人登場であるッ! #sqlap
— Takuto Wada (@t_wada) 2015, 1月 27
奥野さんの講演は、データベースリファクタリング読書会やCLUB DB2などで何度かお聞きしたことがあります。
毎度、熱くDBについて語られるので、データベースのことがホント好きなんだなぁ、とw
この日はまず奥野さんに25章「砂の城」について説明いただいたあと、いつもどおりディスカッション形式となりました。
■ 25章「砂の城」 By 奥野氏
「ベンチマークの測定結果なく性能を語るのは不毛!」というお言葉、グサッと来ました・・・。
奥野さんが25章に載せ忘れた「セキュリティ関係」、「キャパシティプランニング」、「論理的なデータ破壊」という3テーマについても資料で言及されていたりと、超有り難い内容に纏まっています。
あと、奥野さんの新著が出るそうな。
![]() | 理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL (WEB+DB PRESS plus) (2015/02/27) 奥野 幹也 商品詳細を見る |
目次とか紹介していただいたんですが、これは是非読んでみたいと思った次第。
読書会とかあるといいな~
■ ディスカッション
いつものように、ディスカッションしたい内容を付箋に書き出しました。

以下、個人メモ。
■ ベンチマーク
- DBだけのベンチマークだけじゃなく、アプリに対するベンチマークも取らないと役に立たない。
- 大事なのはアプリの性能なので、アプリ性能が落ちていないことを確認すること。
- 実際の測定結果無しに性能問題を語るのは不毛。
- 想定や予想で議論し合う前に、まず測定せよ。そしてその数字で議論せよ。
■ デカいテストデータをどうDBに突っ込むか?
- でかいと、データをDBから取ってくるのも、DBに入れるのも大変・・・
- MySQLだとレプリケーションでコピーしてこれば、デカいデータでもすごく楽にやりとりできる。
- Cookpadは、プロダクション環境とステージング環境が、データのマスク込みで同期している。
■ テストデータの増幅
- 自作ツールによる増幅だとデータに偏りが出たりして、正しく性能が取れないことがある。
- テスト用のデータとして、本番環境などからデータを取得させてもらうことをお客さんとの契約に含んでおくべき。
- データの扱い方について契約に盛り込んでおく。
■ テスト環境
- テストが無いと、怖くてイジれない。テストが無いとリスクになり、踏み込んでいけなくなる。
- 本番環境で性能測定などをするのはリスクがある。なら、本番環境と同等のテスト環境を用意すべし。
- 性能は、CPUやメモリのスペックを換算比較しても意味が無い。性能劣化はそれでは気づけない。
- 低スペックマシンでも、メモリを潤沢に積めば、低スペックながらも結構イケたりする。データがキャッシュに載ったりして
■ テスト環境としてのクラウド
- 本番環境と同等のテスト環境を用意するのは難しいが、最近はクラウドベースのアーキテクチャが増えてだいぶ改善された。
- ただ、クラウド環境はネットワークの向こう側にあるので、細かくいじれないことが多い。
- チューニングでディスク分散、といった職人芸がまったく使えなくなることがある。
- インターネット経由なので、ボトルネックが発生することがある。
- クラウドはオートスケールとか自動バックアップを備えているので、それに助けられることが結構ある。
■ セキュリティ
- なかなかセキュリティ対策の重要性を上に理解してもらえない・・・
- IPAがセキュリティ事故事例の統計を出している。
- セキュリティ事故でどのくらいの損害を出したかの概算金額も出ている。
- それを用いて説明すると上を説得しやすいかも。数字で議論するの大事。
- 最近話題になった徳丸さんネタも使えるかも。
- JR北海道が、セキュリティ強化のために顧客データを全く持たない、という記事が日経コンピュータで紹介されていた。
- ITPro :「JR北海道、8万人分の顧客データを捨てる」
- この事例は、公共分野だから出来たのかもね。産業流通分野だと競争が激しいので、顧客データを分析しないと厳しい。
■ バックアップ
- バックアップは取るだけじゃなく、リストアのリハーサルのテストもちゃんとやっておかないといけない。
- バックアップ取ってたのにリストアが出来ませんでした、という事例がよくある。
- バックアップの取り方も工夫しないと、データ破壊した後のデータを上書きバックアップしてしまった、ということになりかねない。
- 遅延レプリケーションという仕組みがあり、その場合は同期遅延された直前のデータは助かる。
■ データベース関連の書籍
- 奥野さんの新しい書籍、読書会とかやりたいねー
- データベース関連の書籍って、初心者向けかハードコア向けかの両極端だった。
- 最近はミックさんの本とか、中間層向けの書籍が出てきた。
■ データベースのノウハウ
- SQLチューニングはデータの内容によってやり方が変わるので、ノウハウを一般化することは難しい。
- 昔のデータベース運用ノウハウが、「今は全然役に立たない」とか「むしろ逆効果」とかいうことがよくある。
- 自分が獲得したノウハウのいくらかは、自分から積極的に捨てていく覚悟が必要。
- 実装は変えられるので、実装のノウハウは寿命が短い。
■ 急激な高負荷に対する対処
- ワールドビジネスサテライトやニュースやCMで紹介されたことでWebページが落ちることがよくある。
- それに対する対処事例がいくつか紹介されている。 → ググってみた。
- キャッシュを利かして、リクエストをサーバまで到達させないとかの対処はよくする。
■ 想定外な事象への対処
- バックグラウンドが違うエンジニアが集まったチームだと、いろんな案が出て良かった。
- 失敗事例を学ぶことが大事。SQLアンチパターンとか。
- AWSは定期的に故意に障害を発生させ、動作確認をしている。Netflixとかは最先端を行っている。
- InfoQ: NetflixがChaos Monkeyをオープンソースに
- 「障害を防ぐ最高の方法は頻繁に障害を発生させることだ」という教訓を元に、積極的に障害を発生させ、運用環境の問題点をあぶり出しているとのこと。
★感想:
最後の章だけに話題は多岐に渡り、ディスカッションもいろんなネタが満載でした。
そして遂に、全25章を完走!
私、この勉強会が始まって2年あまり、実は皆勤なのです。
しかも私だけw
これもひとえに、参加者皆様一同のおかげです。
アットホームな雰囲気、濃いディスカッション、勉強会後の飲み会などなど、ほんとこの読書会はお気に入りなのでした。
主催の山本さん、和田さんをはじめ、皆様ありがとーございました。
幻の章として「論理削除」をテーマにあと1回読書会やる、という話もあるとかないとか・・・
そちらも楽しみです。
あと、奥野さんから25章のページにサイン戴きました。感謝!

■おまけ:過去の「SQLアンチパターン読書会」ブログ
1章:SQLアンチパターン読書会 「ジェイウォーク」に参加しました
http://makopi23.blog.fc2.com/blog-entry-65.html
2章:SQLアンチパターン読書会 「ナイーブツリー」に参加しました
http://makopi23.blog.fc2.com/blog-entry-70.html
3章:SQLアンチパターン読書会 「IDリクワイアド」に参加しました
http://makopi23.blog.fc2.com/blog-entry-73.html
3章:SQLアンチパターン読書会 「続・IDリクワイアド」 に参加しました
http://makopi23.blog.fc2.com/blog-entry-77.html
4章;SQLアンチパターン読書会 「キーレスエントリー」 に参加しました
http://makopi23.blog.fc2.com/blog-entry-84.html
5章:SQLアンチパターン読書会 「EAV(エンティティ・アトリビュート・バリュー)」に参加しました
http://makopi23.blog.fc2.com/blog-entry-90.html
6章:SQLアンチパターン読書会 「ポリモーフィック関連」 に参加しました
http://makopi23.blog.fc2.com/blog-entry-94.html
7章:SQLアンチパターン読書会 「マルチカラムアトリビュート」に参加しました
http://makopi23.blog.fc2.com/blog-entry-97.html
8章:SQLアンチパターン読書会 「メタデータトリブル」 に参加しました
http://makopi23.blog.fc2.com/blog-entry-105.html
9章:SQLアンチパターン読書会 「ラウンディングエラー」 に参加しました
http://makopi23.blog.fc2.com/blog-entry-109.html
10章:SQLアンチパターン読書会 「サーティーワンフレーバー」に参加しました
http://makopi23.blog.fc2.com/blog-entry-115.html
11章:SQLアンチパターン読書会 「ファントムファイル」に参加しました
http://makopi23.blog.fc2.com/blog-entry-118.html
12章:SQLアンチパターン読書会 「インデックスショットガン」に参加しました
http://makopi23.blog.fc2.com/blog-entry-121.html
13章:SQLアンチパターン読書会 「フィア・オブ・ジ・アンノウン」に参加しました
http://makopi23.blog.fc2.com/blog-entry-128.html
14章:SQLアンチパターン読書会 「アンビギュアスグループ」に参加しました
http://makopi23.blog.fc2.com/blog-entry-130.html
15章:SQLアンチパターン読書会 「ランダムセレクション」に参加しました
http://makopi23.blog.fc2.com/blog-entry-133.html
16章:SQLアンチパターン読書会 「プアマンズ・サーチエンジン」に参加しました
http://makopi23.blog.fc2.com/blog-entry-134.html
17章:SQLアンチパターン読書会 「スパゲッティクエリ」に参加しました
http://makopi23.blog.fc2.com/blog-entry-136.html
18章:SQLアンチパターン読書会 「インプリシットカラム」に参加しました
http://makopi23.blog.fc2.com/blog-entry-138.html
19章:SQLアンチパターン読書会 「リーダブルパスワード」に参加しました
http://makopi23.blog.fc2.com/blog-entry-140.html
20章:SQLアンチパターン読書会 「SQLインジェクション」に参加しました
http://makopi23.blog.fc2.com/blog-entry-144.html
21章:SQLアンチパターン読書会 「シュードキー:ニートフリーク(疑似キー潔癖症)」に参加しました
http://makopi23.blog.fc2.com/blog-entry-147.html
22章:SQLアンチパターン読書会 「シー・ノー・エビル(臭いものに蓋)」に参加しました
http://makopi23.blog.fc2.com/blog-entry-151.html
23章:SQLアンチパターン読書会 「ディプロマティック・イミュニティ(外交特権)」に参加しました
http://makopi23.blog.fc2.com/blog-entry-152.html
24章:SQLアンチパターン読書会 「マジックビーンズ(魔法の豆)」に参加しました
http://makopi23.blog.fc2.com/blog-entry-153.html
- 関連記事
-
- 「Yokohama.groovy #29」に参加しました
- SQLアンチパターン読書会 「砂の城」に参加しました
- 体重102kgで館山若潮マラソン(42.195km)を完走してきました!