MySQL での INDEX と KEY の使用
はじめに
MySQL には、インデックスを作成するための 2 つの構文が用意されていますテーブルの場合: INDEX と KEY。どちらも同じ機能を実現しますが、微妙な違いがあります。
同義語と拡張子
INDEX と KEY の主な違いは、その性質にあります。 INDEX は ISO SQL 準拠の用語とみなされますが、KEY は MySQL 固有の拡張子です。これは、INDEX を使用すると、さまざまなデータベース システム間での移植性が確保される一方、KEY は MySQL に限定されることを意味します。
使用法
ただし、実際には、INDEX と KEY の使用法は次のとおりです。交換可能。どちらも列にインデックスを作成し、高速な検索を提供することでクエリのパフォーマンスを向上させます。次の例に示すように、それらの使用構文は同一です:
CREATE TABLE tasks ( task_id int unsigned NOT NULL AUTO_INCREMENT, parent_id int unsigned NOT NULL DEFAULT 0, task varchar(100) NOT NULL, date_added timestamp NOT NULL, date_completed timestamp NULL, PRIMARY KEY (task_id), KEY parent (parent_id) -- or INDEX parent (parent_id) )
主キーの考慮事項
一方、INDEX と KEY はインデックスの作成に同じ意味で使用できます。 、主キーを扱う場合には例外があります。他のデータベース システムとの互換性を確保するために、列定義では PRIMARY KEY キーワードを KEY と省略することができます。例:
CREATE TABLE orders ( order_id int PRIMARY KEY, order_date timestamp );
この場合、KEY は PRIMARY KEY の同義語で、テーブル内の各行を一意に識別する一意のインデックスを order_id 列に作成します。
結論
要約すると、INDEX と KEY はどちらも同じ目的を果たしますが、INDEX はISO SQL に準拠しているため、推奨されます。ただし、ほとんどの実際的なシナリオでは、どちらを選択するかは個人的な好みか、特定の基準への準拠によって決まります。それらの使用法とそれらが使用されるコンテキストの違いを理解することは、データベースのパフォーマンスを効果的に最適化するのに役立ちます。
以上がMySQL の INDEX と KEY: 違いは何ですか? どちらを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。