ホームページ >データベース >mysql チュートリアル >mysql ビューでインデックスを作成できますか?

mysql ビューでインデックスを作成できますか?

青灯夜游
青灯夜游オリジナル
2022-06-28 18:35:136766ブラウズ

Mysql ビューはインデックスを作成できません。ビューは、データベースに実際には存在しない仮想テーブルであり、実際の行と列はありません (行と列のデータは、ビューを定義するクエリで使用されるテーブルから取得されます)。インデックスは特別なデータベースです。構造はデータ テーブル内の 1 つ以上の列で構成されているため、ビュー内にインデックスを作成できず、主キーがなく、トリガーも使用できません。

mysql ビューでインデックスを作成できますか?

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

mysql ビューはインデックスを作成できません。

MySQL ビュー (View) は、データベース内に実際には存在しない仮想テーブルであり、実際の行と列を持たないデータであり、クエリで使用されるテーブルからの行と列です。ビューを定義し、ビューの使用時に動的に生成されます。

データベースにはビューの定義のみが保存され、ビュー内のデータは保存されません。これらのデータは、ビューを定義するクエリによって参照される実際のテーブルに保存されます。ビューを使用してデータをクエリすると、データベースは実際のテーブルから対応するデータを取得します。したがって、ビュー内のデータは実際のテーブル内のデータに依存します。実際のテーブルのデータが変更されると、ビューに表示されるデータも変更されます。

インデックスは、データ テーブル内の 1 つ以上の列で構成される特別なデータベース構造です。これを使用すると、データ テーブル内の特定の値を持つレコードを迅速にクエリできます。ここではインデックスの意味や機能、メリット・デメリットについて詳しく解説します。 インデックスを使用してデータをクエリする場合、レコード内のすべての情報を読み取る必要はなく、インデックス列をクエリするだけで済みます。それ以外の場合、データベース システムは照合のために各レコードのすべての情報を読み取ります。

したがって、インデックスはデータ テーブル内の 1 つ以上の列で構成されますが、ビューは実際の行と列を持たない仮想テーブルであり、さらに、mysql ビューはインデックスを作成できません。

拡張知識: mysql viewMysql ビューは本質的にステートメントであり、ビューを呼び出すと、データベース管理システムはまずビューにカプセル化されたステートメントを検索し、最初にビューを生成するステートメントを実行し、次にビューに基づいてクエリを実行します。

ビューの利点

ビューとテーブル本質的には同じです 違いはありますが、ビューを定義した後の構造はテーブルと同じであり、クエリ、変更、更新、削除などの操作を実行できます。同時に、ビューには次の利点があります。

1) ユーザー データをカスタマイズし、特定のデータに焦点を当てる

実際のアプリケーション プロセスでは、ユーザーごとにデータごとに異なる要件が存在する可能性があります。

たとえば、生徒基本情報テーブル、カリキュラムテーブル、教師情報テーブル、その他のテーブルなどのデータベースが同時に存在する場合、さまざまなユーザーがニーズに応じて独自のデータを使用できます。 。学生が自分の基本情報を表示および変更するためのビュー、コース担当者がコーススケジュールおよび教師情報を表示および変更するためのビュー、および教師が学生情報およびコース情報テーブルを表示するためのビュー。

2) データ操作の簡素化

クエリを使用する場合、集計関数がよく使用され、他のフィールドの情報も表示する必要があります。また、他のテーブルと関連付ける必要がある場合もあります。このアクションが頻繁に発生する場合は、ビューを作成して操作を簡素化できます。

3) データ セキュリティの向上

ビューは仮想的なものであり、物理的には存在しません。基本データのセキュリティを保護するために、テーブルを使用する権限を指定せずに、ユーザーに表示権限のみを付与することができます。

4) 必要なデータの共有

ビューを使用すると、各ユーザーが必要なデータを定義して保存する必要がなくなり、データベース内のデータを共有できます。同じデータを保存する必要があるのは 1 回だけです。

5) データ形式の変更

ビューを使用すると、取得したデータを再フォーマットし、他のアプリケーションへの出力を整理できます。

6) SQL ステートメントの再利用

ビューはクエリ操作のカプセル化を提供し、データ自体は含まれません。表示されるデータは、ビュー定義に従ってベース テーブルから取得されます。 Base テーブル内のデータが追加または削除されると、ビューには更新されたデータも表示されます。ビューを定義し、必要なクエリを作成すると、そのビューは簡単に再利用できます。

ビューとデータ テーブルの本質的な違いに注意してください。つまり、ビューは実際のテーブルに基づいた仮想テーブルであり、そのデータ ソースは実際のテーブルに基づいています。

ビューを使用する場合は、次の点にも注意する必要があります。

    ビューを作成するには、十分なアクセス権が必要です。
  • 作成できるビューの数に制限はありません。
  • ビューはネストできます。つまり、他のビューからデータを取得するクエリによってビューが作成されます。
  • ビューにはインデックスを付けることはできず、トリガー、デフォルト、ルールを関連付けることもできません。
  • #ビューはテーブルとともに使用できます。
  • ビューにはデータが含まれないため、ビューを使用するたびに、クエリで必要な取得操作を実行する必要があります。複数の接続とフィルター条件を含む複雑なビューまたはネストされたビューを作成すると、システムのパフォーマンスが大幅に低下する可能性があります。したがって、多数のビュー アプリケーションを展開する場合は、システム テストを実行する必要があります。

[関連する推奨事項: mysql ビデオ チュートリアル ]

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

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