2012-01-16 11 views
2

大きなテーブル(> 150万行以上)を3回クエリするか、3つの条件を同じクエリに入れる方が良いですか?サンプルwhere句は以下のとおりです。同様のまたはより複雑なwhere句があります。私の感心は、それらのすべてを同じに入れることです。where。しかし、コミュニティからの情報が必要です。前もって感謝します。query large table

where (a =1 or b=1) and (a=2 or b=3) and (c=1 or d=3) 
+3

あなたのロジックはANDとORに関して逆になる可能性がありますか?確認できますか? –

+0

クエリを実行して、自分のために参照してください –

+0

あなたの時間と労力のおかげで皆、ありがとう。 –

答えて

4

データベースへの1回のトリップは間違いありません。 abcdの各列にインデックスを付けることを忘れないでください。

0

一般的に同じwhere句にすべてを入れるのが早いです。ただし、それぞれのクエリは異なります。各クエリのクエリプランを確認して、できる限り最高のパフォーマンスを発揮できるようにしてください。

0

すべてはスキーマ(データ型、キー、索引など)に依存しますが、一般的に言えば、すべての条件を同じwhere句に追加するほうがよいと言えるでしょう。と連携。調べる最も良い方法は、データ/スキーマで最高のパフォーマンスが得られる方法を確認するためにいくつかのテストを実行することです。

0

すべてを1つのクエリに入れます。

オーバーヘッドの削減に加えて、この方法で重複を排除します。複数の条件に一致する行がある場合、複数回クエリすると、結果セットに2回表示されます。