IT エンジニア日記 ~あんまり union を使ってない~ -2023/12/21-
どうも。できるだけラクをしたいから頭脳をフル回転させているのに、全然仕事が楽にならない clown です。
SQL で union と where + or って結果セットが同じになる。
あくまで俺基準という前提で、DB エンジニアなら知ってると思う。
勿論、そうならないように全然違うクエリを union したら同じにはならないのはわかると思う。
1つのテーブルをフルスキャンする方が速いパターンと複数テーブルをインデックススキャンする方が速いパターンとあって、正直状況によって速度が変わる。
テーブルのレコードがどれくらい?ってのと、レコードのヒット率がどれくらい?ってところで使い分けをするのが効率よさそう。
レコードが多くて検索条件の選択肢が少ないならインデックススキャンの方が効率が良さそうなんで、この場合は union を使う感じにした方が良さそう。
大量のレコードがヒットする可能性があるなら、where + or より、 where + in の方が良さそう。
いろいろ試して結果セットを確認して、どれが一番効率良いのかは常に問いかけてシステムを作らないとな。と思った。
支援のお願い
素材引用元
アイコン
見出し
この記事が気に入ったらサポートをしてみませんか?