MySQL でテーブルを作成するとき、データのインデックス付けについて、INDEX と KEY という 2 つの用語が登場することがあります。これらの用語は両方とも同じ目的を果たしますが、使用法には微妙な違いがあります。
INDEX と KEY の定義
Create Table ステートメントでの使用
Create Table ステートメントでは、INDEX または KEY を同じ意味で使用できます。 。たとえば、次の 2 つのステートメントは同等です:
CREATE TABLE tasks ( task_id INT UNSIGNED NOT NULL AUTO_INCREMENT, parent_id INT UNSIGNED NOT NULL DEFAULT 0, task VARCHAR(100) NOT NULL, PRIMARY KEY (task_id), INDEX parent (parent_id) ); CREATE TABLE orders ( order_id INT UNSIGNED NOT NULL AUTO_INCREMENT, KEY order_date (order_date) );
一意なインデックスと非一意なインデックス
INDEX と KEY はどちらも一意でないインデックスを作成できますが、 PRIMARY KEY は定義上一意であることに注意することが重要です。これは、PRIMARY KEY 列の値がテーブル内の各行を一意に識別することを意味します。一方、INDEX と KEY は重複する値を許可します。
KEY としての主キー
MySQL では、KEY キーワードを使用して PRIMARY KEY を定義できます。ただし、混乱を避けるために、PRIMARY KEY キーワードを明示的に使用することをお勧めします。例:
CREATE TABLE customers ( customer_id INT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY (customer_id) );
推奨事項
MySQL では KEY と INDEX は同義ですが、ISO SQL 標準に準拠し、パフォーマンスが向上するため、一般に INDEX を使用することをお勧めします。携帯性。
以上がMySQL テーブル作成における INDEX と KEY の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。