SQLer 生島勘富 のブログ

RDB・SQLの話題を中心に情報発信をしています。

Software Design の特集記事を執筆しました

Software Design 2019年8月号(2019/7/18発売)の第二特集を執筆しました。

gihyo.jp

是非、ご購入いただいて、ご覧いただければ幸いです。

概要

ゲームを題材に学ぶ ー 内部構造から理解するMySQL

定番的オープンソースRDBのMySQLですが,その使い方についていろいろ思い違いしていることがけっこうあります。そもそもMySQLの中身はどうなっていますか? なぜInnoDBとMyISAMがあるのか,読み込みのデフォルトのページサイズはどのくらいか,ログファイルのデータサイズはどのくらいかなど,知らないで通り過ぎてしまった知識もあります。また,NoSQLとRDBとの違いもよく話題にあがります。本特集ではゲーム開発の現場でMySQLを使用したときに起こる問題を通して,そのしくみと機能を再確認し仕事に活かす手がかりを示します。

はじめに

ブログの記事は、1回で1章分あるかないかです。 そこだけを読むと、なんだかおかしいことを言ってるように感じる人がでて、ときには炎上したりしてきました。 しかし、今回の特集記事は、ある程度のまとまりで皆様にお届けすることができます。 「O/Rマッパーは『車輪の再開発』でしかない」という結論に向けて、以下のような章立てで解説しています。

第1章 DBサーバの構造を知ろう!

RDBMSの低レイヤの部分について解説しています。

第2章 ゲーム系で確認すべきパラメータ

検討されにくいMySQLのパラメータについて解説しています。

第3章 実行計画を見てSQLの構造を理解しよう

実行計画をJavaのようなソースに直して、理解してもらえるように解説しています。

第4章 NoSQLとSQLの使いどころを知ろう

NoSQL(Key-Value-Store)は本当に速いのか? どういうときに、NoSQLを使ったらよいのかについて解説しています。

第5章 DB側でやること、アプリ側でやることを見極めよう

ぐるぐる系はなぜ遅いのか、「SQLのオーバーヘッドだけじゃないよ」ということについて解説しています。

第6章 DBサーバでゲームの処理を作るとどうなる?

「ゲーム系でRDSを使うなら、ストアドプロシージャを使った方が良いよ」 ということについて解説しています。

第7章 バーティショニング

あまり使われないパーティショニングについて解説しています。

第8章 まとめ - SQLから逃げない!

私の想いを、柔らかく表現しました。