1. ホーム
  2. mysql

[解決済み] MySqlのビューのパフォーマンス [終了しました]

2023-05-30 23:21:03

質問

ビューを使用する道を歩む場合、どのようにして良いパフォーマンスを確保することができますか?

それとも、そもそもビューを使わず、同等のものをselect文に組み込んだ方が良いのでしょうか?

どのように解決するのですか?

それは依存します。

それは、ビューを通して何を見るかに完全に依存します。しかし、ほとんどの場合、労力を削減し、より高いパフォーマンスを得ることができます。SQL 文がインデックスされていないビューを参照するとき、パーサーとクエリオプティマイザーは SQL 文とビューの両方のソースを分析し、それらを 1 つの実行プランに解決します。SQL ステートメント用のプランとビュー用のプランが別々に存在するわけではありません。

ビューはコンパイルされません。 . それは他のテーブルで構成される仮想的なテーブルです。ビューを作成したとき、それはサーバーのどこかに存在するわけではありません。ビューを構成する基本的なクエリは、クエリオプティマイザによる性能の向上や劣化の影響を受けます。ビューの性能とその基礎となるクエリの性能を比較したことはありませんが、性能は若干異なるのではないかと想像されます。データが比較的静的であれば、インデックス付きビューでより良いパフォーマンスを得ることができます。これは、quot;compiled" の観点から、おそらくあなたが考えていることかもしれません。

ビューの利点。

  1. データをオブジェクトに格納することなく、データを表示することができます。
  2. テーブルの表示を制限する。すなわち、テーブルのカラムのいくつかを隠すことができる。
  3. 2つ以上のテーブルを結合し、1つのオブジェクトとしてユーザーに表示します。
  4. 誰もテーブルに行を挿入できないように、テーブルのアクセスを制限する。

これらの有用なリンクを参照してください。

  1. VIEWとSQL文の性能比較
  2. ビューは単純なクエリより速いですか?
  3. Mysql VIEWS vs. PHP クエリ
  4. MySql ビューは動的で効率的ですか?
  5. マテリアライズド・ビューとテーブルの比較。利点は何ですか?
  6. ビューに対するクエリは、SQL を直接実行するよりも遅いですか?
  7. TEMPTABLEビューのパフォーマンス問題に対する回避策です。
  8. <ストライク SQL Serverでインデックス付きビューを使用することによるパフォーマンスの向上をご覧ください。