2017-05-05 5 views
0

私はWebアプリケーション(PHP/MySQL)で作業していますが、私は最高のパフォーマンスを探しています。別のビューのパフォーマンスでビューに参加する

私はビューを構築していますが、このビューでは複数のデータを結合する必要がありますが、別のビューまたはテーブルとビューを結合するときには何が最善の選択でしょうか。

私が持っている場合は、より明確にする:

View_1 = Table_A Table_B

に参加して、私は

を行う必要があり、私は、Table_AとTable_BからView_2データに必要View_2 = Table_C Join_1 View_2またはTable_C join Table_A join Table_B

ありがとうございました

答えて

2

特定のクエリの実行計画を見てください。

は、ビューに参加するのではなく、基礎となる表はかもしれないは、パフォーマンスに影響を与える - ATIPロイは説明しているように、あなたが実行される順序は、パフォーマンスのために重要になることが合流し、合流の一部を有するので、ビュー内でクエリ内の結合を最適に順序付けることができなくなる可能性があります。

しかし、これは完全にあなたのクエリに依存します。何の違いもありません。

また、ビューを使用する利点もあります。つまり、そのビューのロジックが1つの場所に格納されていることを意味します。あなたは私たちに簡単な例を与えてくれましたが、現実には、ビュー1のコードはもっと複雑です。複数の場所で同じロジックが必要な場合は、可能であればコードの重複を避けることが良い方法です。

実際にパフォーマンスが重要かどうか(重要な点)を確認します。そのオプションのパフォーマンスが受け入れられない限り、ビューを使用することをお勧めします。

+0

はい、私は特にデータベースエンジンのロジックを意識していないので、質問していましたが、おそらくビューがどこかにキャッシュされていて、アクセスが同じ結合を実行するよりも高速です別のテーブルですが、お返事ありがとうございます;) – Bobyblanco

1

個々のテーブルを先に進めて、行数を減らす可能性のある内部結合を使用する場合は、最初に行うことをお勧めします。行の数を減らすと、パフォーマンスの面で常に役立ちます。テーブルへの参加を考慮すると、毎回上記の柔軟性が得られないことがあります。

+0

ありがとうございます;) – Bobyblanco

関連する問題