違い: 1. 主キーはテーブル内の行の属性または属性グループを一意に識別するために使用されますが、インデックスは特定の値を持つレコードをすばやく検索するために使用されます; 2. テーブルには、主キーは 1 つですが、複数の候補インデックスを持つことができます; 3. 主キー列では null 値が許可されませんが、インデックス列では null 値が許可されます; 4. 主キーは論理キーであり、インデックスは物理キーです。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
リレーショナル データベースは、データベースの物理モデルの基礎となる主キーに依存します。主キーの物理レベルでの目的は 2 つだけです。
は行を一意に識別します。
外部キーによって効果的に参照できるオブジェクトとして。
主キーは、テーブル内の行を一意に識別する属性または属性グループです。テーブルには主キーを 1 つだけ含めることができますが、複数の候補インデックスを含めることができます。主キーは多くの場合、データの不整合を防ぐために外部キーと参照整合性制約を形成します。主キーにより、レコードが一意であり、主キー フィールドが空でないことを確認できます。データベース管理システムは主キーに対して一意のインデックスを自動的に生成するため、主キーも特別なインデックスになります。
Index (インデックス) は特別なファイルです (InnoDB データ テーブルのインデックスはテーブル スペースのコンポーネントです)。これらには、データ テーブル内のすべてのレコードへの参照ポインターが含まれています。インデックスは、特定の値を持つレコードをすばやく検索するために使用されます。インデックスは主に検索の利便性とアクセスの高速化を目的としており、特定のルールに従って作成され、通常は並べ替えの役割を果たします。
主キーとインデックスの違いと関連性をいくつか次に示します。
1. 主キーは一意のインデックスである必要がありますが、一意のインデックスが主キーである必要はありません。
いわゆる主キーは、テーブル内の行を一意に識別できる属性または属性グループです。テーブルには主キーを 1 つだけ持つことができますが、複数の候補インデックスを持つことができます。主キーはレコードの行を一意に識別できるため、データの更新および削除時にエラーが発生しないことを保証できます。上記の機能に加えて、主キーはデータの不整合を防ぐために外部キーとの参照整合性制約を形成することがよくあります。データベースを設計する場合、主キーは非常に重要な役割を果たします。
主キーにより、レコードが一意であり、主キー フィールドが空ではないことが保証されます。データベース管理システムは主キーに対して一意のインデックスを自動的に生成するため、主キーも特別なインデックスになります。
2. テーブルには複数の候補インデックスを含めることができますが、主キーは 1 つだけ存在できます。
3. 主キー列では NULL 値は許可されませんが、インデックス列では NULL 値が許可されます。
4. インデックスによりクエリ速度が向上します。
実際には、主キーとインデックスは両方ともキーですが、主キーは論理キーであり、インデックスは物理キーです。つまり、主キーは実際には存在せず、インデックスは実際には存在します。データベースに存在します。主キーは通常、主に 1 つのテーブルに同じレコードが存在することを避けるために作成する必要があります。通常、インデックスを構築する必要はありませんが、テーブルにクエリを実行する必要がある場合は、インデックスを構築するのが最善です。これにより、検索が高速化されます。
[関連する推奨事項: mysql ビデオ チュートリアル ]
以上がmysqlの主キーとインデックスの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。