sql >> データベース >  >> RDS >> Mysql

MySqlビューのパフォーマンス

    状況によって異なります。

    それはあなたがビューを通して見ているものに完全に依存します。しかし、おそらくあなたの努力を減らし、より高いパフォーマンスを与えるでしょう。 SQLステートメントがインデックス付けされていないビューを参照する場合、パーサーとクエリオプティマイザーは、SQLステートメントとビューの両方のソースを分析し、それらを単一の実行プランに解決します。 SQLステートメントのプランは1つではなく、ビューのプランも別にありません。

    ビューはコンパイルされません 。その仮想テーブルは他のテーブルで構成されています。あなたがそれを作成するとき、それはあなたのサーバーのどこかに存在しません。ビューを構成する基になるクエリは、クエリオプティマイザと同じパフォーマンスの向上または機能の影響を受けます。ビューとその基になるクエリのパフォーマンスをテストしたことはありませんが、パフォーマンスがわずかに異なる可能性があると思います。データが比較的静的である場合は、インデックス付きビューのパフォーマンスを向上させることができます。これは、おそらく「コンパイル済み」の観点から考えていることかもしれません。

    ビューの利点:

    1. データをオブジェクトに保存せずにデータを表示します。
    2. テーブルの表示を制限します。つまり、テーブルの一部の列を非表示にすることができます。
    3. 2つ以上のテーブルを結合し、それを1つのオブジェクトとしてユーザーに表示します。
    4. テーブルへのアクセスを制限して、誰も行をテーブルに挿入できないようにします。

    次の便利なリンクをご覧ください:

    1. VIEWとSQLステートメントのパフォーマンス>
    2. ビューは、簡単なクエリ?
    3. MySQLVIEWSとPHPクエリ
    4. MySqlビューは動的で効率的ですか?>
    5. マテリアライズドビューとテーブル:利点は何ですか?
    6. クエリを実行していますSQLを直接実行するよりも遅いビューで?
    7. TEMPTABLEビューのパフォーマンスの問題の回避策
    8. SQLServerでインデックス付きビューを使用することでパフォーマンスが向上することを確認する


    1. JDBCでpostgresに接続するときにスキーマを指定することは可能ですか?

    2. LaravelEloquentはmaxcreated_atですべての行を選択します

    3. OracleDatabaseで有効なタイムゾーンのリストを返す方法

    4. IP範囲のクエリに使用されないPostgreSQLインデックス