9. 一般的な 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"}]
ゲームってどんな風に出来てるの?
70. どうやらこんなシンプルなクエリが問題らしい
負荷が高まる
SELECT * FROM t WHERE c2 = 'XXX';
SELECT * FROM t WHERE c2 = 'YYY';
SELECT * FROM t WHERE c2 = 'ZZZ';
よく見るとインデックスが使われていない!
このままでは夜のピークタイムは越えられない
インデックスをつけるため緊急メンテへ
※MySQL5.6 からは動かしながらインデックスが追加できるようになりました
73. ・インデックスを意識する
レコード数が多いテーブルでは
インデックスの効かないクエリは極端な負荷になる
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';
負荷が高まる
×
○
○