0

データベーススキームを作成しようとしています。どの方法論が他の方法論よりも優れているか知りたいだけです。データベースから検索タスクを実行するには、2 つの方法があります。条件は次のとおりです。異なる場所を示す同じ構造のtable1、table2..tablenという複数のテーブル名があります。

次のように私の作業方法:

  1. UNION of my TABLESを使用してVIEWを作成し、次のようなクエリを使用します 。Select * from my_view where my_condition;
  2. 単純なUNION演算子を使用して、次のようなクエリを使用します。

    select * from table1 where my_condition UNION select * from table2 where my_condition UNION ... .. select * from tablen where my_condition

したがって、私の問題は、より高速なソリューションが必要なことです。VIEW と UNION のどちらかを選択するのを手伝ってください。mysql クラスターSCALABLITYのような他のソリューションがある場合は教えてください。

4

1 に答える 1

0

ビューは単なるsaved Named SELECT statement. ビューを呼び出すと、その定義で SELECT ステートメントを実行するだけです。ビューによるパフォーマンス上の利点はありませんが、セキュリティとコードの簡素化の利点がいくつかあります。Indexed Viewビューで作成されたインデックスから恩恵を受けることができる他のクエリと同様に、ビューのパフォーマンスを向上させることができるものを作成しない限り。警告インデックス付きビューには多くの制限があります。
Union Operatorは、2 つ以上の選択クエリからの結果セットを垂直に結合します。パフォーマンスを向上させたい場合は、テーブルでクエリに使用できるインデックスを確認する必要があります。
クエリの実行計画を注意深く調べることは、必要な結果セットを取得するために SQL SERVER が実行する必要がある手順を理解できるため、開始するのに最適な場所です。

于 2013-10-31T09:30:51.790 に答える