SQLer 生島勘富 のブログ

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

2019-01-01から1年間の記事一覧

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

以前、Software Design の特集記事を執筆しましたが、 sikushima.hatenablog.com 技術評論社のページですべて無料で公開されています。 gihyo.jp ぜひ、ご覧ください。

「SQLの苦手を克服する」セミナー

api-first.connpass.com お時間が合いましたらご参加ください。

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

SQLの苦手を克服する本 https://www.amazon.co.jp/gp/product/4297107171 ブログで書いている内容を、もっと分かりやすくしたものです。 例えば、以下の記事の内容も、分かりやすく解説しています。 「SQLを文字列連結して作る必要はない」 sikushima.hatena…

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

Software Design 2019年8月号(2019/7/18発売)の第二特集を執筆しました。 gihyo.jp 是非、ご購入いただいて、ご覧いただければ幸いです。 概要 ゲームを題材に学ぶ ー 内部構造から理解するMySQL 定番的オープンソースRDBのMySQLですが,その使い方につい…

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

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

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

はてなの日記からはてなのブログに移り今まで数本の記事を書いてきましたが、Markdownが使えることに今回初めて気づきました(早く言ってよね) ここからは、Markdownで書きます。 目次 目次 パーティションテーブルはなかなか利用されません パーティション…

NoSQL と SQL について

かなり古いネタですが、DeNA の松信氏のブログから NoSQL と SQLについて考えてみましょう。 目次 目次 DeNA の松信氏のブログ DeNA の松信氏がやった実験 一番遅いのはネットワーク SQLは滅茶苦茶重いが、速くもできる! ユーザアクションに対して SQL は極…

SQLと手続き型言語 - JOIN を手続き型で書いてみる

SQL と手続き型言語(オブジェクト指向言語)は最終的には同じです。 今回は、JOIN を手続き型言語(Javaっぽく)書いてみます。 目次 目次 オプティマイズについて 2つの表をJOINしたSQL 単純なネスティッドループ(NESTED LOOP) インデックスを使ったネ…

ほとんどのエンジニアは「Staticオジサン」よりひどい3

前回の続き。 目次 目次 正解はこうなる イメージはこうなる つまりこれはバグ!! 「Staticオジサン」はStatic決め打ち ちなみにWordPressはこんな変換をしています

ほとんどのエンジニアは「Staticオジサン」よりひどい2

前回の続きです。 目次 目次 まずは間違いの例 もう少しマシな人の例 まずは間違いの例 たぶん、何も考えてない人は以下のようになったと思います。 基本構文を分かってない。どうしようもないですね。 もう少しマシな人の例 工夫はしたけれど、残念! 正解…

ほとんどのエンジニアは「Staticオジサン」よりひどい1

「Staticオジサン」が炎上して10年ほど経ちましたが、当時、私が指摘した通りほとんどのエンジニアは「Staticオジサン」よりひどく、10年経っても改善してないどころか、更にひどくなっているのではないかと思います。 目次 目次 自分はできると思う人は例題…

実行計画のキャッシュについて2 - 各RDBMSについて

SQL文の動的生成を避けるには、実行計画のキャッシュを意識しなければなりません。 そこで、RDBMS毎にキャッシュのやり方が違いますからその違いと、「本当はこういう構造にすれば良いのに」という提案について書きます。 目次 目次 各RDBMSの実行計画のキャ…

実行計画のキャッシュについて1 - 分岐を避けるSQL

かつて文字列連結をして、SQL文を構築していた時代がありました。 現在では ORM を利用することが多いかもしれません。 しかし、論理演算をしっかり理解して工夫すれば SQL だけで WHERE句などを分岐せずに作ることが可能です。 目次 目次 分岐(IF文)か計…

SQLでbit演算を使うパターン

WHERE句は論理演算の塊になるため、論理演算の理解は非常に重要です。 論理演算の応用として bit演算も SQL にもあります。 bit演算結果をデータとして保存することは、多用はいけませんが効果が高いこともあるのでご紹介します。 目次 目次 FROM句、WHERE句…

第14・15回 SQL Server 2019勉強会より - はてなブログに引っ越し記念

はてなのブログに引っ越しました。 思い出したようにブログを再開したいと思います。 目次 目次 Twitterは議論に向かない。 私の主張 SQLの方が息が長いからロジックをSQLへ寄せた方が良い SQLが分かりにくいという常識とは? 教育からやり直すべき 嫌いな人…