SQLer 生島勘富 のブログ

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

拙著『SQLの苦手を克服する本』のご案内

SQLの苦手を克服する本
SQLの苦手を克服する本

https://www.amazon.co.jp/gp/product/4297107171

ブログで書いている内容を、もっと分かりやすくしたものです。

例えば、以下の記事の内容も、分かりやすく解説しています。

SQLを文字列連結して作る必要はない」

sikushima.hatenablog.com

私はどうしても、「自分が理解している範囲をエンジニアなら理解しているだろう」という想いで文章を書いてしまいます。 しかし、それでは難解で理解できないエンジニアが多いということで、開米瑞浩さんに第三者にもわかりやすくリライトしていただいています。

ideacraft.jp

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

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

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

gihyo.jp

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

概要

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

定番的オープンソースRDBMySQLですが,その使い方についていろいろ思い違いしていることがけっこうあります。そもそもMySQLの中身はどうなっていますか? なぜInnoDBMyISAMがあるのか,読み込みのデフォルトのページサイズはどのくらいか,ログファイルのデータサイズはどのくらいかなど,知らないで通り過ぎてしまった知識もあります。また,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から逃げない!

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

DBオブジェクトの命名法と主キー

DBオブジェクトについて、Rails などのようにどうしても「外側から管理したい」と考える人たちは、言語側の命名法で処理したいと考えるようですが、DB側から見ると非常に使いにくいです。 そのため、弊社では以下のような命名法で用途に応じて別名を提供しています。

目次

続きを読む

パーティションテーブルについて

はてなの日記からはてなのブログに移り今まで数本の記事を書いてきましたが、Markdownが使えることに今回初めて気づきました(早く言ってよね) ここからは、Markdownで書きます。

目次

  • 目次
  • パーティションテーブルはなかなか利用されません
  • パーティションテーブルとは
  • パーティショニングの種類
    • リストパーティショニング
    • レンジパーティショニング
    • ハッシュパーティショニング
  • 利用の例
    • インデックスの代わりに
    • デイリーで溜まるデータを日付で
    • ユーザが数十万以上いる場合
    • 巨大なバッチをループして
  • まとめ
続きを読む

NoSQL と SQL について

かなり古いネタですが、DeNA の松信氏のブログから NoSQL と SQLについて考えてみましょう。

目次

  • 目次
  • DeNA の松信氏のブログ
  • DeNA の松信氏がやった実験
  • 一番遅いのはネットワーク
  • SQLは滅茶苦茶重いが、速くもできる!
  • ユーザアクションに対して SQL は極力1回にする
  • まとめ - NoSQL を使うべきとき

 

続きを読む