MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでテーブル作成時にインデックスを定義する方法

MySQLでは、テーブルを作成するタイミングで同時にインデックスを定義することができます。CREATE TABLE文の中にINDEXキーワードを記述するだけで、テーブル作成とインデックス作成を一度に行えるため、後からALTER TABLE文で追加する手間が省けます。

テーブル作成時にインデックスを作成する

まず、サンプルとして学生情報を管理するテーブルを作成し、あわせて「StudentFirstName」カラムにインデックスを設定してみましょう。

mysql> create table DemoTable
    (
    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentFirstName varchar(20),
    StudentAge int,
    StudentCountryName varchar(100),
    INDEX first_Name_index(StudentFirstName)
    );
Query OK, 0 rows affected (1.01 sec)

上記の例では、テーブル定義の最後にINDEX first_Name_index(StudentFirstName)と記述することで、「first_Name_index」という名前のインデックスがStudentFirstNameカラムに対して自動的に作成されます。

インデックスが正しく作成されたか確認する

DESCコマンド(DESCRIBE)を使って、テーブルの構造を確認してみましょう。

mysql> desc DemoTable;

実行結果は以下の通りです。

+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| StudentId          | int(11)      | NO   | PRI | NULL    | auto_increment |
| StudentFirstName   | varchar(20)  | YES  | MUL | NULL    |                |
| StudentAge         | int(11)      | YES  |     | NULL    |                |
| StudentCountryName | varchar(100) | YES  |     | NULL    |                |
+--------------------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

実行結果の見方

出力結果の「Key」列に注目してください。各キーの意味は次の通りです。

  • PRI:主キー(PRIMARY KEY)であることを示します。ここではStudentIdが該当します。
  • MUL:そのカラムがインデックスの先頭カラム、または一意でないインデックスの一部であることを示します。StudentFirstNameにMULが表示されていることから、インデックスが正常に作成されたことがわかります。

補足:インデックス作成時のポイント

インデックスは検索速度を大幅に向上させる一方で、データの挿入・更新・削除の際にオーバーヘッドが発生します。そのため、WHERE句やJOIN条件で頻繁に使用されるカラムに絞ってインデックスを作成するのが効果的です。また、SHOW INDEX FROM テーブル名; を実行すれば、作成済みのインデックスの詳細情報を確認することもできます。

  1. MySQLで日付(DATETIME型)を使った一時テーブルを作成する方法

    MySQLで日付を扱う一時テーブルを作成するには、CREATE TEMPORARY TABLE文を使用します。一時テーブルはセッションが終了すると自動的に削除されるため、一時的なデータの保存や計算用途に非常に便利です。基本構文DATETIME型のカラムを持つ一時テーブルは、以下の構文で作成できます。CREATE TEMPORARY TABLE テーブル名(    カラム名 DATETIME);実際に一時テーブルを作成してみようまず、「DueDate」というDATETIME型カラムを持つ一時テーブル「DemoTable」を作成します。mysql> C

  2. MySQLでインデックス付きのテーブルを作成する方法を徹底解説

    MySQLでは、テーブル作成後にCREATE INDEX文を使うことで、特定のカラムに対してインデックスを追加できます。検索速度の向上やデータ整合性の確保において、インデックスは非常に重要な役割を果たします。この記事では、基本的な構文から実際の実行例まで、順を追ってわかりやすく解説します。インデックス付きテーブルを作成する基本構文まずテーブルを作成し、その後CREATE INDEX文でインデックスを追加します。基本の構文は以下のとおりです。create table yourTableName ( yourColumnName1 dataType, yourColumnName2 dataTyp