SQLでデータベースを操作して感じたこと | 海の見える家

海の見える家

努力して諦めなければ、必ず道があると信じて突き進みます。時を間違えなければ。頑張る時に頑張らなければ、努力は結実しないのです。

例えば、大規模MMORPGなどでは、そのシステムが稼働開始から、プレイヤーが会員登録やログイン、ログアウト、取得した経験値、接続IPアドレス、各イベントが起きた時間を、ログに残しています。

今回、そのデータベースのサンプル(ユーザー数100件、イベントログ2000件)を操作して、必要な情報をピックアップしてみたのですが、まるで、システム管理者のような気分を味わいました。

そこで、不正行為とされる、複数アカウントの登録の発見は、接続元IPアドレスとその時間を絞り込めば、一発で判ります。

他にも禁止事項に抵触する行為である、RMTなどでは、2つのアカウント間で大量のゲーム内仮想通貨とレアなアイテムとの交換などの記録も、異常な額の通貨が移動するので、発見は容易いことが判りました。

食べず嫌いで敬遠してきたデータベースですが、サンプルのデータベースで遊ぶことが出来たので、とても面白く、操作方法を習得出来ています。

ブラウザを開いて、そのデータベースを読み込むので、メモリの消費量がハンパじゃありません。16GBのメモリを搭載しているのですが、10GB消費しました。

Amebaでは、会員数50万人ですかね?
(アクティブな会員数は10万くらいかな)

道理で、不具合が起きた時、システムログを辿るのに時間が掛かるはずだと思いました。

特に大規模な不具合が起きた場合、システムログに大多数のユーザーの履歴が残っていますので、また、メモリは有限なので、ユーザーを特定しつつ、少しずつ読み込まないといけません。システム管理者は、忙殺されている可能性が高いと思いました。

「運営の方々、特にシステム管理者様、お疲れ様です。」と心から思いました。

また、ドラゴンクエスト9星の守り人では、ユーザーの都道府県ごとのデータを公開されていたということは、プレイヤーの所在地の情報や所持金等のデータを勝手に送信していたんですね・・・。ちょっと引きました。

※ 追記 ※

条件によるデータの絞り込みで、ユーザーの日別のアクセス時間数や月ごとのアクセス時間の平均値なども求められることが判りました。

しばらく、データベースで遊べそうですw