MySQL の主キーとインデックスの関係

怪我咯
リリース: 2017-04-07 09:33:30
オリジナル
1508 人が閲覧しました

リレーショナル データベースは、データベースの物理モデルの基礎である主キーに依存します。主キーの物理レベルでの目的は 2 つだけです:

  • は行を一意に識別します。外部キーによって有効に参照できる

    オブジェクト
  • としての

Indexは特別なファイル (InnoDB データ テーブルのインデックスはテーブル スペースのコンポーネントです) であり、データ テーブル内のすべてのレコードへの参照ポインターが含まれています。以下に、主キーとインデックスの違いと関係をいくつか示します。

1. 主キーは一意のインデックスである必要がありますが、一意のインデックスは必ずしも主キーである必要はありません。

いわゆる主キーは、テーブル内の特定の行を一意に識別できる属性または属性グループです。テーブルには主キーを 1 つだけ持つことができますが、複数の候補インデックスを持つことができます。主キーはレコードの特定の行を一意に識別できるため、データのupdatedeleteを実行するときにエラーが発生しないことを保証できます。上記の機能に加えて、主キーはデータの不整合を防ぐために外部キーとの参照整合性制約を形成することがよくあります。データベースを設計する場合、主キーは非常に重要な役割を果たします。

主キーにより、レコードが一意であり、主キーフィールドが空ではないことが保証されます。データベース管理システムは主キーに対して一意のインデックスを自動的に生成するため、主キーも特別なインデックスになります。

2. テーブルには複数の一意のインデックスを作成できますが、主キーは 1 つだけです。

3. 主キー列では null 値が許可されませんが、一意のインデックス列では null 値が許可されます。

4. インデックスにより、クエリの速度が向上します。

実際、主キーとインデックスは両方ともキーですが、主キーは論理キーであり、インデックスは物理キーです。つまり、主キーは実際には存在しませんが、インデックスは実際にはデータベースに存在します。主キーは通常、同じレコードに対してインデックスを構築する必要はありませんが、テーブルにクエリを実行する必要がある場合は、インデックスを構築することをお勧めします。検索。

FAQ

1. 主キーとは何ですか?

皆さんもこの本を読んだことがない場合は、コピーを見つけて確認してください。各ページのページ番号は、データテーブルの主キーがこのページ番号に相当します。

2. インデックスとは何ですか?

書籍を例に挙げると、インデックスは本の目次に相当し、本の基本的な内容と構造をすぐに知ることができます。インデックスを使用すると、データ テーブルのクエリを高速化できます。

3. 主キーと主インデックスの類似点とその機能?

  • 主キーはデータベースレコードの一意性を識別するためのものであり、レコードの重複は許可されず、主キーは特殊なインデックスでもあります。

  • データテーブルでは主キーは 1 つだけ許可されますが、複数のインデックスが存在する可能性があります。

  • 主キーを使用すると、データベースに主インデックスが自動的に作成され、クエリの効率を高めるために非主キーにインデックスを作成することもできます。

  • インデックスは、辞書のディレクトリに相当し、テーブル全体のスキャンを実行せずに、目的の結果をすばやくクエリできます。

  • 主キーインデックスと外部インデックスの値は空にすることができます。

  • 主キーは複数のフィールドで構成されて複合主キーを形成することもでき、主キーは唯一のインデックスでもある必要があります。

  • 一意のインデックスとは、インデックス値が一意であり、テーブルが複数の一意のインデックスを持つことができることを意味します。

以上がMySQL の主キーとインデックスの関係の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!