ホームページ > データベース > mysql チュートリアル > MySQL の「INDEX」と「KEY」の違いは何ですか?

MySQL の「INDEX」と「KEY」の違いは何ですか?

Susan Sarandon
リリース: 2024-11-24 22:37:10
オリジナル
778 人が閲覧しました

What's the Difference Between `INDEX` and `KEY` in MySQL?

MySQL における INDEX と KEY の違い

MySQL では、INDEX と KEY はクエリのパフォーマンスを向上させるために使用される同義語であり、本質はありません違い。ただし、ISO SQL との互換性の理由から、INDEX を使用することをお勧めします。

MySQL マニュアルの CREATE TABLE の説明には、「KEY は通常、INDEX の同義語です。カラム定義で指定すると、主キー属性 PRIMARY KEY も KEY として指定できます。これは互換性のためです。」他のデータベースシステムでは「

例えば、以下の 3 つの CREATE TABLE を実装します。

CREATE TABLE orders1 (
    order_id int PRIMARY KEY
);

CREATE TABLE orders2 (
    order_id int KEY
);

CREATE TABLE orders3 (
    order_id int NOT NULL,

    PRIMARY KEY ( order_id )
);
ログイン後にコピー

のステートメントは同等であり、データベース内に同じテーブル オブジェクトを生成します:

CREATE TABLE orders4 (
    order_id int NOT NULL,

    KEY ( order_id )
);

CREATE TABLE orders5 (
    order_id int NOT NULL,

    INDEX ( order_id )
);
ログイン後にコピー

一方、次の 2 つのステートメントは同等ですが、上記の 3 つのステートメントとは異なります:

これは、これらのステートメントでは、KEY と INDEX が PRIMARY KEY ではなく INDEX の同義語であるためです。したがって、 KEY ( order_id ) メンバーと INDEX ( order_id ) メンバーは主キーを定義せず、ジェネリック インデックス オブジェクトのみを定義します。これは KEY とは完全に異なります (行を一意に識別しないため)。
CREATE TABLE orders1 (
    order_id int NOT NULL,
    PRIMARY KEY ( order_id )
)


CREATE TABLE orders2 (
    order_id int NOT NULL,
    PRIMARY KEY ( order_id )
)


CREATE TABLE orders3 (
    order_id int NOT NULL,
    PRIMARY KEY ( order_id )
)


CREATE TABLE orders4 (
    order_id int NOT NULL,
    KEY ( order_id )
)


CREATE TABLE orders5 (
    order_id int NOT NULL,
    KEY ( order_id )
)
ログイン後にコピー
これを確認するには、SHOW CREATE TABLEorders1...5 コマンドを実行します。

以上がMySQL の「INDEX」と「KEY」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート