SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)
- 技術評論社 (2015年4月11日発売)
- Amazon.co.jp ・本 (368ページ)
- / ISBN・EAN: 9784774173016
作品紹介・あらすじ
実行計画を読み解きボトルネックを解消する。大量のデータを自在に処理するノウハウ。
感想・レビュー・書評
-
昔の本のため、ページがすべて白黒でどこが重要なのかわからないし、色の強弱がないため読んでいて眠くなってくるし、頭に入らない。
実践入門と書いてあるが、入門向けではない気がする。詳細をみるコメント0件をすべて表示 -
いちいち章題が俊逸。
全編読み通した後に味わい深く感じれます。
あらゆるSQLを書く人たちに勧めたい一冊です。
目次
DBMSのアーキテクチャ──この世にただ飯はあるか
SQLの基礎──母国語を話すがごとく
SQLにおける条件分岐──文から式へ
集約とカット──集合の世界
ループ──手続き型の呪縛
結合──結合を制する者はSQLを制す
サブクエリ──困難は分割するべきか
SQLにおける順序──甦る手続き型
更新とデータモデル──盲目のスーパーソルジャー
インデックスを使いこなす──秀才の弱点 -
業務でSQLのチューニングが必要となり購入。
著者は定評のあるDB本を多く執筆しているミックさん。
非常に読みやすく、実践にすぐ活かせる内容ばかりでとても参考になった。 -
SQLを書かなきゃいけなくなったらまず一度読んでみてほしい。パフォーマンスとか難しい話はともかく、CASE文とかGROUP BYとかその辺の基本がザッと学べる。
-
データベースの全体像に触れながら、実行計画を元に、実際に作成してしまうSQLの欠点や改善点に触れて解説が進んでいきます。
業務ルールをどこに持っていくかの論点はででなかったですが、それは、アプリケーションを作成する上で検討しないといけないところかと思いました。
複雑なSQLとして捉えるのではなく、論理的に何を取得、加工しようとしているのかという観点で組み立てる、読み込んでいこうと思いました。 -
SQLの基本的な使い方についてわかりやすく書かれている。
入門とされているが実務でも適用できる内容だと思う。
サブクエリの使い方やパフォーマンスを良くする改善例も書かれており、
もっと勉強すればSQLの使い方が楽しくなりそうだと思えるようになった。 -
SQLは一通りの構文書けるが、パフォーマンスが気になるクエリを早くする方法があまり検討つかない、そういう人にはかなり適した本だと思う。
インデックスやキャッシュに関する記述も多少押さえられている。見所は素直な発想で出てこないクエリのIOバウンドを、EXPLAIN句を使って実際に見ていくことを徹底して、なおかつ複数の解法を示しながら比較していくところか。
サブクエリやLoop処理・隣接リスト構造を、ウインドウ関数や分割関数でシンプルかつ高パフォーマンスなクエリとして記述しており、この辺の記述がかなりコンパクトにまとまっているのも類書と比べても面白い。SQLの黒魔術本もいいが、RDBに特化しているという点でははじめに本書を熟読してからでも他のテクニカルなSQL本を読み始めるのは遅くなさそう。
それにしてもこういうSQLの最近の関数駆使した書籍読んでると、MySQLの関数貧弱さがやっぱ目に付くな。。。 -
SQLも色々進化しているので、Window関数などについていけていない人は読むべき。
-
これで入門書と言われると、道は険しく果てしない感じがしてしまう。
ド級の初心者がこれで入門しようとしたら、
折れない気持ちを支える技術が身につくことは間違いない。
もちろんあわせてSQLの正しい技術も身につくのでお得ではある。
(以下抜粋。○:完全抜粋、●:簡略抜粋)
○SQLの世界のスキームは宣言型です。この世界では、主役は「文」ではなく「式」です。(P.98)
○RDBを考案したCoddは次のように言っています。
関係操作では、関係全体をまとめて操作の対象とする。
目的は繰り返し(ループ)をなくすることである。(P.125)
○SQLは、本省の最初で紹介したCoddの言葉からもわかるように
「脱・手続き型」を目指した言語です。
DBMSも内部的には手続き型言語で作られており、
実際の物理データへのアクセスは手続き的に行っているのですが、
その手続きレイヤを隠蔽することがSQLの理念でした。(P.159)
○「内部」が「直積の部分集合」という含意を持っていたことから類推できるとおり、
「外部」とは「直積の部分集合にならない」という意味です。(P.172)
○B-treeは、検索のアルゴリズムとしては飛び抜けて性能が良いわけではありません。
考案者の一人であるR.Bayerも、
「もし世界が完全に静的でデータが変化しないなら、
ほかのインデックス技術でも同程度のパフォーマンスは達成できるだろう」と言っています。(P.299) -
例が具体的でわかりやすかった。タイトル通り、実践的な入門として非常によかった。