投稿

4月, 2015の投稿を表示しています

「SQL実践入門」がとてもわかりやすい

最近出た「SQL実践入門」を読んでいます。「達人に学ぶ〜」シリーズで有名なミックさんの新著で主にSQLのパフォーマンスについての話をメインとした本。
相変わらず説明がとてもわかりやすく非常によい本だったので紹介。

SQLとパフォーマンスについての話がメイン 個人的にDB関連の書籍の分類は大きく以下の3種類に分類して考えているのですが、本書については一番上のカテゴリにはいりそうです。(「プログラマのためのSQL」も一番上かな・・・)
SQL、パフォーマンス(実行計画)本著達人に学ぶSQL徹底指南書SQLパズル(積んでる・・・)などテーブル設計達人に学ぶDB設計徹底指南書理論から学ぶデータベース実践入門などDBMS製品個別の話(DB運用含む)内部構造から学ぶPostgreSQLSQL Server 2008 ビギナーズガイドエキスパートのためのMySQLトラブルシューティングガイド(読んでない・・・)など SQLの基本となる考え方、テクニック、実行計画の読み解き方といった所から、DBを使用する際のボトルネックをどのように解消していけばいいのかという話がメインになっています。
ミックさんといえば「達人に学ぶSQL徹底指南書」「達人に学ぶDB設計徹底指南書」が有名。両著は非常にわかりやすく、DB関連の入門書としてかなりオススメの2冊です。 本書は「達人に学ぶSQL徹底指南書」より一歩踏み込んだ内容になっており、恐らくそちらを読んでからの方が深く理解できそうです。
主にPostgreSQLとOracleの実行計画を確認しながら、話を進めていくような形になっているので、少なくとも実行計画とはなんぞや?くらいの知識があるとよさそうです。
なお、実行計画の読み方は本書内で説明されているのでなんとかなるかと。
SQL実行時に使用されるアルゴリズムがわかる この辺りちゃんと理解していないとオプティマイザーの気持ちがわからなくて、有効なインデックスの付け方や実行計画の操作が上手くできないのですよね。。。
SQL実行時に使用されるアルゴリズム(実行計画で見ることができる)にはそれぞれの操作毎に複数のアルゴリズムが存在します。 例)JoinNested Loop JoinHash JoinMerge Join 自分はDB関連の知識としては主にMySQLあたりから入ったので、MySQLでサポート…