1

以下のテーブルのパフォーマンスについて質問があります\

テーブル A -- 顧客 ID は 5 つだけ (5 行 1 列) テーブル B -- すべての顧客とその情報のマスター ベースです (100 万行と 500 列)。

クエリ 1:-

Select A.*,
       B.Age
from A
left join B
on A.Customer_id = B.Customer_id;

クエリ 2:-

Select a.*,
       B.Age
from A
left join
(select Customer_id,age from B) C
on A.Customer_id = C.Customer_id;

ここでのパフォーマンスの主な問題は、テーブル B に 500 列が存在するためです。テーブル B のすべての列を含む結合中に SQL が一時テーブルを作成する必要がないため、2 番目のクエリの方が優れていると感じています。

これが間違っているかどうか教えてください。

4

4 に答える 4

0

500列はかなり広範囲です。

おそらく、次のようなインデックスを作成できます。

CREATE INDEX index_name 
          ON table_b (customer_id, 
                      age
                     );
于 2013-10-23T07:15:08.100 に答える