dポイントプレゼントキャンペーン実施中!

1年くらい前のモバゲーなどはあれだけのユーザとクエリをMySQLサーバ600台位で処理しているそうですが(レプリケーションを考えると実質1/3くらいでしょうが)、どのような工夫がほどこされているのでしょうか?

SELECTよりも処理の重いINSERT、UPDATEも1秒間にもの凄い数が来ると思います。
並行処理プログラム等にてDBにアクセスを同時に大量に行う場合等にはどのようなハード構造や、システム設定にすればいいのでしょうか?

1台のDBサーバに複数のMySQLを入れたり、仮想化してOSを複数入れて、とかで対処しているのでしょうか?
それとも特にそのような事をしなくても(特に更新系の)大量同時クエリを裁くだけの実力がMySQLにはあるのでしょうか?

宜しくお願いします。

A 回答 (2件)

モバゲーについてはNo.1さんのご回答で十分かと思いますので、


一般的な話で一つ。

MySQLに限らず、単純なWebシステム処理の負荷分散自体は実はそれほど難しくありません。
(あくまで構成的な概念としては、ですがw)
最近の大規模システムの負荷分散だと以下のような感じです。
1、ロードバランサ下にWebサーバ、APサーバ、DBサーバを複数配置
2、Web:AP:DB = 2:2:1くらいで上記を揃え、各層間でロードバランシングします
3、ストレージをRAID10のSANで複数構成し、処理系とは別ネットワークで同期します

更に最近でしたら、これをクラウド上で構築して、
各ノード数を随時調整できるようにしているとかでしょうかね。
但し、クラウドの場合は単純にDBサーバを増やしても物理ストレージが増える訳ではないので
I/O負荷によるボトルネックはどうしようもありませんけども。


まぁ要は
MySQLの能力云々ではなく、どのDBであっても
全体のシステム構成で負荷をなんとかしているということです。
単純に処理速度の比較であれば、完璧にチューニングされたOracleには敵わないものの
チューニングしていない状態であれば大差無かったと思います。
    • good
    • 0
この回答へのお礼

なるほど、ありがとうございます。
分かりやすい説明をありがとうございます。

しかし、完璧にチューニングされたOracleってのはやっぱMySQLなんかよりも上なんですね。
知りませんでした。

お礼日時:2012/01/12 23:16

数年前のコラムですがこんなのがありました



http://enterprisezine.jp/article/detail/25
    • good
    • 0
この回答へのお礼

リンクを貼っていただき有難うございました。
今、途中まで読んでおります。

お礼日時:2012/01/12 23:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す