-2

私は3つのテーブルを持っています:

A_details    
B_details    
C_details

どちらがより効率的でしょうか: 3 つの選択クエリ、または結合を含む 1 つのクエリでしょうか?

4

3 に答える 3

1

これは、スキーマと、テーブルに正しいインデックスがあるかどうかに大きく依存します。

私は通常、コードで実行しようとするのではなく、データベースに結合させることを好みます。データベースはこれに優れています。

ここで重要なのは、結合が効率的に読み取るための正しいインデックスがあるかどうかです。

データベースのインデックスを見てください

于 2012-10-10T06:25:35.523 に答える
0

データベースによって異なりますが、意味がない場合は JOIN を作成しないでください。データベースまたはプラットフォームが指定されていません。プラットフォームでクエリごとに複数の結果セットが許可されている場合は、3 つの SELECT を一度に発行するだけで、1 つのデータベース リクエストで 3 つのテーブルを取得できます。

プラットフォームがサポートしていない場合は、データベースに 3 回アクセスし、これがパフォーマンスの問題であることが確実でない限り、クエリを結合しようとしないでください。

于 2012-10-10T06:20:39.273 に答える
0

正規化の方が優れたアプローチであるため、テーブルの結合はより効率的です。

ここでは、テーブル間の共通の列で結合された 3 つのテーブルに対して左外部結合を使用しています。したがって、列を col1、col2、col3... に置き換えて、テーブルに適したものに置き換え、以下のクエリを参照してください。

select a.*, b.*, c.*
from A_details a 
left outer join B_details b on a.col1=b.col2
left outer join C_details c on a.col1=b.col3

詳細については、 http ://www.w3schools.com/sql/sql_join.asp を参照してください。

于 2012-10-10T06:26:16.477 に答える