タイトルで提起された問題は、段階的に分解して解決することができます。 MySQL では KEY と INDEX は同義です。そうすると、この質問は PRIMARY KEY、UNIQUE KEY、INDEX の違いに簡略化できます。これら 3 つは、まさにインデックスの区分です。主キー インデックス、一意のインデックス、通常のインデックス (INDEX) です。 INDEX を使用すると、データベースからのデータの読み取りが高速化されます。 INDEX は通常、JOIN、WHERE、および ORDER BY 句の列に追加されます。 インデックスを作成するときは、インデックスが SQL クエリ ステートメント (通常は WHERE 句の条件として) に適用されていることを確認する必要があります。 実際、インデックスは主キーとインデックス フィールドを格納し、エンティティ テーブルのレコードを指すテーブルでもあります。 インデックスにも欠点があります。インデックスによりクエリ速度は向上しますが、INSERT、UPDATE、DELETE などのテーブル更新は遅くなります。テーブルを更新する場合、MySQL はデータだけでなくインデックス ファイルも保存する必要があるためです。 MySQL における KEY と INDEX の違い KEY は通常、INDEX の同義語です。列定義にキーワード属性 PRIMARY KEY が指定されている場合は、PRIMARY KEY を KEY のみとして指定することもできます。これは他のデータベース システムとの互換性のために行われます。 PRIMARY KEY は一意の KEY です。この場合、すべてのキーワード列は NOT NULL として定義する必要があります。列が明示的に NOT NULL として定義されていない場合、MySQL はそれらを暗黙的に定義する必要があります。 KEY、またはキー値は、主キー (PRIMARY KEY)、外部キー (Foreign KEY) などのリレーショナル モデル理論の一部であり、データの整合性チェックや一意性制約などに使用されます。 INDEX は実装レベルにあります。たとえば、テーブル内の任意の列にインデックスを作成できます。その後、インデックスが作成された列が SQL ステートメントの Where 条件にある場合、データをすばやく見つけて取得できます。 UNIQUE INDEX に関しては、それは単なる INDEX のタイプです。UNIQUE INDEX を作成すると、この列のデータは繰り返されないことを示します。MySQL は、UNIQUE INDEX タイプのインデックスに対してさらに特別な最適化を行うことができると思います。 したがって、テーブルを設計するときには、KEY はモデル レベルのみでよく、クエリの最適化が必要な場合は、関連する列に対してインデックスを作成できます。 鍵 KEY はデータベースの物理構造であり、2 つの意味があります。1 つは制約であり、データベースの構造的整合性を制約および規制することに重点が置かれています。もう 1 つはインデックスであり、クエリを支援します。 キーには制約とインデックスの両方の意味があることがわかります。 索引 INDEX もデータベースの物理構造ですが、補助クエリとしてのみ機能し、作成されると追加のスペースを占有します。インデックスはプレフィックスインデックス、フルテキストインデックスなどに分けられます。インデックスは単なるインデックスであり、インデックス付きフィールドの動作を制限するものではありません。 主キーと一意キーの違い PRIMARY KEY と UNIQUE KEY は似ています。PRIMARY KEY は通常 1 つの列ですが、複数の列になることもあり、通常はデータの行を決定します。 テーブルには PRIMARY KEY を 1 つだけ設定できますが、UNIQUE KEY は複数設定できます。 列が UNIQUE KEY として設定されている場合、その列内の 2 つの行に同じデータが含まれることはありません。 PRIMARY KEY では NULL 値は許可されませんが、UNIQUE KEY では許可されます。 要約すると、類似点は次のとおりです。 違い: テーブル t を変更して制約 uk_t_1 UNIQUE (a,b); t に (a ,b ) 値 (null,1); # 繰り返すことはできません t に (a ,b ) 値 (null,null); # 繰り返すことができます MySQL では、PRIMARY KEY 列に対して UNIQUE INDEX が自動的に作成されるため、再度インデックスを作成する必要はありません。 PRIMARY KEY と UNIQUE INDEX に関するインターネット上の説明: 「PRIMARY」は INDEX ではなく PRIMARY KEY と呼ばれることに注意してください。 オペレーションインデックス インデックスを構築すると、インデックス ファイル用のディスク領域が消費されます。 CHAR または VARCHAR 型の場合、長さはフィールドの実際の長さより短くてもかまいません。BLOB または TEXT 型の場合は、長さを指定する必要があります。 テーブルを作成するときにインデックスを作成します。 テーブルmytableを作成します( ID INT NULLではありません、 ユーザー名 VARCHAR(15) NOT NULL、 INDEX [INDEXName] (ユーザー名(長さ)) ); インデックスの削除
以下もご興味があるかもしれません:
|
目次ショートポーリングロングポーリングウェブソケットコミュニケーションの原則シンプルな1対1チャット...
Windows インストール mysql-5.7.17-winx64.zip メソッド レコード &...
目次1. Docker の 2375 ポートを別のポートに変更します。これは一時的な対策にすぎません...
MSIインストールパッケージを使用してインストールするご使用のオペレーティング システムに応じて、対...
この記事の例では、文字の出現回数をカウントするJavaScriptの具体的なコードを参考までに共有し...
1. 並列レプリケーションの背景まず、並列レプリケーションの概念はなぜ存在するのでしょうか? 1. ...
この記事では、VMware 12でのUbuntu 16.04イメージのインストールチュートリアルを参...
目次1. 基本2. ノード、ツリー、仮想DOM 1. 仮想DOM 3. createElementパ...
VMware が異常シャットダウンした後、再起動すると「この構成ファイルを排他的にロックできませんで...
必要:あるフィールドの同一項目を結合し、別の時間フィールドで並べ替えます。例:初めに テーブルから都...
目次概要グローバルフック関数ルーティング固有のフック関数コンポーネント内のフック関数概要ルートガード...
LinuxにMySQL 8.0.25をインストールするための最新のチュートリアルを参考にしてください...
場合によっては、特定の条件に基づいて Web ページ内の HTML 要素を表示するか非表示にするかを...
導入分散について話すときは、分散構成センター、分散ログ、分散リンク トラッキングなどについて考える必...
このチュートリアルは Windows システムにのみ適用されます。インストールしたがまだインストール...