ホームページ  >  記事  >  データベース  >  mysql ビューにはインデックスがありますか?

mysql ビューにはインデックスがありますか?

WBOY
WBOYオリジナル
2022-03-02 15:32:264930ブラウズ

mysql のビューにはインデックスがありません。ビューはデータベースに実際には存在しない仮想テーブルであるため、主キーやインデックスはありません。ビューには行や列がないため、本質的にはステートメントです。ビューが呼び出されると、システムは最初にビューを生成するステートメントを作成し、ビューに基づいてクエリを実行します。

mysql ビューにはインデックスがありますか?

このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。

mysql ビューにはインデックスがありますか?

ビューにはインデックスがありません。ビューは仮想テーブルであり、実際にはデータベースに存在しないため、主キーやインデックスはありません。行がまったくないためです。合計列は本質的にステートメントです。ビューを呼び出すと、データベース管理システムはまずビューにカプセル化されたステートメントを見つけ、最初にビューを生成するステートメントを実行し、次にビューに基づいてクエリを実行します。

ビューではインデックスもトリガーも使用できません(インデックスとトリガーは後で分析します)

通常のテーブルでも使用でき、テーブルを結合するSQL文の編集も可能です。ビューと通常のテーブルが許可されます。

ビューを使用したデータの更新 (追加、削除、変更) については、ビュー自体にはデータがないため、これらの操作は通常のテーブルに直接適用されますが、すべてのビューが更新操作を実行できるわけではありません。ビュー内の group by、join、subquery、union (unoin)、集計関数 (sum/count など)、計算フィールド、DISTINCT などの場合、ビューは更新できないため、前の例は更新できません。この操作は主にデータの取得に使用されるため、更新について詳しく説明する必要はありません。

ビューの本質

これで、ビューの作成と使用が比較的明確になりました。これで、ビューの本質をさらに理解する準備が整いました。ビューは仮想であるとこれまで繰り返し述べてきました。テーブル: データがなければ、各クエリは通常のテーブルから動的にデータを取得して結合するだけですが、テーブルのように見えます。この原理は次の図から明らかです:

mysql ビューにはインデックスがありますか?

実際、ビューは通常のテーブルに対するユーザーのクエリ操作を制限するためにも使用されることがあり、そのようなテーブルには対応するビューのみが与えられます。選択操作権限では、特定の行または列からのデータの読み取りのみが許可されます。この方法では、行と列の読み取りを制限するためにデータベースのアクセス許可設定を直接使用する必要がなくなり、アクセス許可を調整する手間も省けます。

推奨学習: mysql ビデオ チュートリアル

以上がmysql ビューにはインデックスがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。