廣山豊のレビュー一覧

  • データベース速攻入門~モデリングからSQLの書き方まで

    Posted by ブクログ

    <本のタイトル>
    データベース速攻入門 ~モデリングからSQLの書き方まで (Software Design別冊)

    <本の紹介>
    (こんな方におすすめ)
    ・データベースについて基礎から勉強したい方

    <何が書いてあったか(誰でも書ける)>
    ・インデックスが使用されない可能性のあるSQL文
     WHERE句で
     ・NULLを条件に使用している
     ・否定の条件を使用している
     ・カラム列に演算を行っている
     ・カラム列にSQL関数を用いている
     ・LIKE演算子で「中間・後方一致」を行っている

    ・日付の条件指定
     日付型に変更する際はCAST
     日付から特定の部分だけ抽出する際はEXTRACT

    ・サブクエリは遅い、JOINを使うこと
     サブクエリの結果テーブルにはインデックスが効かない
     またサブクエリはネストが増え、可読性が落ちる
     JOINは正しく使えばインデックスが効くので高速

    ・EXISTSとINの使い分け
     INはまずサブクエリを実行する
     サブクエリの結果が小さい場合はINを使う

     EXISTは内部でJOINに近い動きをする
     親クエリの結果が小さい場合はEXISTSを使う

    <そこから何を学んだか(自分自身のオリジナルの意見)>
    WHERE句で
     ・NULLを条件に使用している
     ・否定の条件を使用している

    ・EXISTSとINの使い分け
     IN句の中にサブクエリを書いたら、まずサブクエリが実行される。
     そのためサブクエリの結果が小さい場合はINを使うほうがよい

     EXISTは内部でJOINに近い動きをする
     親クエリの結果が小さい場合はEXISTSを使う

    <それをどう活かすか(アウトプットによる実践経験の蓄積)>
    WHERE条件でインデックスが効かない可能性のパターンを新しく知った。
    またEXISTSとINの内部の動きの違いも知った。
    ただいずれにしてもSQLの実行計画を毎回確認するのは絶対実施すべきと思った。

    0
    2023年06月01日