一般的な Web サービス開発案件と同じ
LAMP構成
Linux
Apache
MySQL
PHP 、 Perl 、 Python
言語は PHP 、 Perl 、 Ruby など様々
やってる事はなんであっても変わらない
ゲームってどんな風に出来てるの?
10.
アプリの仕組みによって
Web サーバから返すレスポンスの種類が違う
・ HTML型
一般的なサイトと同じく HTML を返す
ブラ三や Mobage 、 GREE の携帯ゲーム
・ API 型
HTML ではなく JSON を返す
Flash 、 Ajax 、スマホのネイティブアプリ
などのクライアントが存在
今はこちらが主流
ゲームってどんな風に出来てるの?
11.
API が返す JSONとは
[{"name":"Pz.Kpfw. V Pantherr","gun":"7,5 cm KwK 42
L/70","weight":"44.8t","speed":"55","armor":"80","type":"MIDDLE
_TANK"},{"name":"Jagdpanther","gun":"8,8 cm PaK 36
L/56","weight":"45.5t","speed":"55","armor":"80","type":"TANK_D
ESTROYER"},{"name":".Kpfw. VI Tiger","gun":"8,8 cm PaK 36
L/56","weight":"57t","speed":"40","armor":"100","type":"HEAVY_T
ANK"},{"name":"Pz.Kpfw. Tiger II","gun":"8,8 cm KwK 43
L/71","weight":"69.8t","speed":"38","armor":"180","type":"HEAVY
_TANK"},{"name":"Jagdtiger","gun":"12,8 cm PaK 44
L/55","weight":"75t","speed":"38","armor":"250","type":"TANK_D
ESTROYER"}]
ゲームってどんな風に出来てるの?
どうやらこんなシンプルなクエリが問題らしい
負荷が高まる
SELECT * FROMt WHERE c2 = 'XXX';
SELECT * FROM t WHERE c2 = 'YYY';
SELECT * FROM t WHERE c2 = 'ZZZ';
よく見るとインデックスが使われていない!
このままでは夜のピークタイムは越えられない
インデックスをつけるため緊急メンテへ
※MySQL5.6 からは動かしながらインデックスが追加できるようになりました
・インデックスを意識する
レコード数が多いテーブルでは
インデックスの効かないクエリは極端な負荷になる
CREATE TABLE t(
id int(11) AUTO_INCREMENT,
c1 varchar(10),
c2 varchar(10),
PRIMARY KEY (id),
KEY c1 (c1)
)
主キー
SELECT * FROM t WHERE id = 1000;
インデックスがついている
SELECT * FROM t WHERE c1 = 'AAA';
インデックスがついていない
SELECT * FROM t WHERE c2 = 'BBB';
負荷が高まる
×
○
○