データベース速攻入門 モデリングからSQLの書き方まで の商品レビュー
<本のタイトル> データベース速攻入門 ~モデリングからSQLの書き方まで (Software Design別冊) <本の紹介> (こんな方におすすめ) ・データベースについて基礎から勉強したい方 <何が書いてあったか(誰でも書ける)> ・インデックスが使用されない可能性のあ...
<本のタイトル> データベース速攻入門 ~モデリングから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の実行計画を毎回確認するのは絶対実施すべきと思った。
Posted by
- 1