[解決済み] MySqlのビューのパフォーマンス [終了しました]
2023-05-30 23:21:03
質問
ビューを使用する道を歩む場合、どのようにして良いパフォーマンスを確保することができますか?
それとも、そもそもビューを使わず、同等のものをselect文に組み込んだ方が良いのでしょうか?
どのように解決するのですか?
それは依存します。
それは、ビューを通して何を見るかに完全に依存します。しかし、ほとんどの場合、労力を削減し、より高いパフォーマンスを得ることができます。SQL 文がインデックスされていないビューを参照するとき、パーサーとクエリオプティマイザーは SQL 文とビューの両方のソースを分析し、それらを 1 つの実行プランに解決します。SQL ステートメント用のプランとビュー用のプランが別々に存在するわけではありません。
ビューはコンパイルされません。 . それは他のテーブルで構成される仮想的なテーブルです。ビューを作成したとき、それはサーバーのどこかに存在するわけではありません。ビューを構成する基本的なクエリは、クエリオプティマイザによる性能の向上や劣化の影響を受けます。ビューの性能とその基礎となるクエリの性能を比較したことはありませんが、性能は若干異なるのではないかと想像されます。データが比較的静的であれば、インデックス付きビューでより良いパフォーマンスを得ることができます。これは、quot;compiled" の観点から、おそらくあなたが考えていることかもしれません。
ビューの利点。
- データをオブジェクトに格納することなく、データを表示することができます。
- テーブルの表示を制限する。すなわち、テーブルのカラムのいくつかを隠すことができる。
- 2つ以上のテーブルを結合し、1つのオブジェクトとしてユーザーに表示します。
- 誰もテーブルに行を挿入できないように、テーブルのアクセスを制限する。
これらの有用なリンクを参照してください。
関連
-
ジョイントインデックスのためのmysqlの条件とインデックスが失敗するための条件
-
[解決済み] [GROUP BY句に含まれるか、集約関数で使用される必要があります。
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] INNER JOINよりもCROSS APPLYを使用すべきなのはどのような場合ですか?
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQLデータベースでvarchar型の数値の大きさを比較する方法
-
MySQLインストールチュートリアル(Windows用)詳細
-
SpringBootのMySQLへの接続は、バックエンドのインターフェイスの操作方法を書き込むためのデータを取得するために
-
MysqlからElasticsearchにデータを同期させる方法を説明します。
-
[解決済み】MySQL エラー 1093 - FROM 句で更新のターゲット テーブルを指定できません。
-
Mysql がエラー 1241 を報告 オペランドは 1 つのカラムを含む必要があります。
-
PostMan レポート エラー: 接続 ECONNREFUSED 127.0.0.1:port number
-
CMakeエラー。ソースディレクトリ "/xxx/mysql-5.6.21" に CMakeLists.txt がないようです。
-
[解決済み] MySQLでコマンドラインを使用してユーザーアカウントのリストを取得するにはどうすればよいですか?
-
[解決済み] ビューは単純なクエリよりも高速ですか?