ソーシャルゲームのためのデータベース設計 まとめ
ソーシャルゲームを作る時に参考になるデータベースやKVSの選定、設計などの記事やスライドのまとめ
2013-02-03追記
スライド
ソーシャルゲームのためのデータベース設計
http://www.slideshare.net/matsunobu/ss-6584540
とあるアプリの開発運用(トラブルシュート)
http://www.slideshare.net/takafumionaka/ss-5852561
PHPで大規模ブラウザゲームを開発してわかったこと
http://www.slideshare.net/ketaiorg/php-4638298
Lampで作るソーシャルアプリの負荷対策〜アプリとインフラの調和のテクニック〜 (Klabさん)
http://www.slideshare.net/klab/4-d6963726f736f667420506f776572506f696e74202d204c414d5082c58dec82e9835c815b83568383838b83418376838a82cc958989d791ce8df432303130303731342e707074
大ヒットソーシャルアプリの裏側 (Klabさん)
http://www.slideshare.net/klab/ss-5369530
ブログ
ソーシャルゲームのためのMySQL入門 - Technology of DeNA
http://engineer.dena.jp/2010/11/mysql-for-socialgame.html
ソーシャルゲームのためのMySQL入門その2 - Technology of DeNA
http://engineer.dena.jp/2011/02/mysql-for-socialgame2.html
ソーシャルアプリGame研究会 by 学びing : ソーシャルゲーム用のサーバ構成(データベース検討編)
http://blog.livedoor.jp/manabisg/archives/1165648.html
記事
【CEDEC 2010】GREEによる大規模ソーシャルゲームのつくりかた / GameBusiness.jp
http://www.gamebusiness.jp/article.php?id=2095
【CEDEC2010】各社が公開、大規模オンラインゲームのバックエンドの秘密 - GAME Watch
http://game.watch.impress.co.jp/docs/news/20100903_391453.html
@IT Special PR:600億PVもMySQLで! モバゲーのインフラ底力
http://www.atmarkit.co.jp/ad/dena/dena1004/index.html
まとめ記事
ソーシャルゲーム開発に関するスライド資料をまとめてみました | ke-tai.org
http://ke-tai.org/blog/2011/01/28/snsgamesslidematome/
書籍
以下の書籍、買ってみました。
mixiアプリを出している各社が、具体的にどんなサービスでどんなサーバ構成で運営しているのか?が書いてあるので参考になります。
INSERT DELAYを使うとか。
mixiアプリ開発&運用コンプリートブック -ユーザをつかむソーシャルアプリのつくり方!育て方!
- 作者: 田中洋一郎
- 出版社/メーカー: 技術評論社
- 発売日: 2010/06/19
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 249回
- この商品を含むブログ (9件) を見る
お願い
他にも、こんな記事あるよ! ってあったら教えて下さいまし!
追記
2011-12-23追記
大規模ソーシャルゲーム「ドラゴンコレクション」運営の最前線で得られたノウハウ 〜チューニングと運用、18のポイント〜(1/4):CodeZine
http://www.codezine.jp/article/detail/6336/
2012-02-13追記
(19) 大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
http://www.slideshare.net/infinite_loop/phpmysql
携帯ソーシャルゲーム開発に効くかもしれない薬
http://magicalrod.com/article/001/p001_1.html
完全公開!ソーシャルゲーム設計事例:プロローグ (ゆめ技:ゆめみスタッフブログ)
http://yumewaza.yumemi.co.jp/2011/07/social_game_develop01.html
2012-02-21追記
DRECOMさんの事例 resque + redis , fusion io, percona など
ソーシャルゲームスケールアウトの歴史
http://www.slideshare.net/drecom/ss-11667563
2012-03-19追記
ログ解析を支えるNoSQLの技術
http://www.slideshare.net/drecom/nosql-11668093
2013-02-03追記
大規模ソーシャルゲームを支える技術〜PHP+MySQLを使った高負荷対策〜
http://www.slideshare.net/infinite_loop/phpmysql-13361388
僕個人の意見
以下、認識間違っていたら教えて下さい。
あと、みなさんの知っている知識やノウハウも教えて下さい。
2013年2月3日時点の話です。
お約束
- JOIN 禁止 (縦にテーブル分けるとJOINが効かなくなる)
- ORDER できるだけなくす
- 言語側でソートする
- partitioning: 長期的。パージ用。検索の高速化。メモリ使用量の削減。
*** テーブル名
テーブル一覧で、目的のテーブルが探しやすい、見やすくなるよ
テーブル名見て、マスタなら自動でキャッシュするとかありかも?
*** カラム名
- primary key は、id
インデックスや遅いDBの改善
- スキーマのレビューしてもらおう
- slow_query ログを出して、遅いクエリから修正した方が効率的で早い。
けど、負荷テストなどスケジュールの後の方にやろうとすると、時間とれなくなって悲惨な目に合うこともある
- DB専門の人やチームを作って任せる方が学習コストと品質高くなる
- slow_query や file_sort を開発時から常に見られるよう監視、改善。
Master / Slave
- 最近は、SSD(ioDrive)を使って、全てMaster に更新、SELECTをするパターンが多い感じ。Slaveはホットスタンバイ。
- コードも対応できるようにした方がいいかも。
PostgresSQL
- 最近は早くなってきているらしい。(が、導入実績は聞いたことない。)
filesystem (Unix系)
- xfs が最適?
io scheduler
- DB、Web、マスター、スレーブなど場合による。