システム開発ブログ

産業システム部

MySQL

データベース

MySQLのテーブルにインデックスを追加する

今回はMySQLのテーブルにインデックスを追加する方法をご紹介したいと思います。

初めに、現在のテーブルのインデックスの状態を確認します。
インデックスの表示は以下のコマンドで行います。

SHOW INDEX FROM [テーブル名];

例)社員テーブルのカラムを表示する

-------------ここから---------------------------------------------

mysql> SHOW INDEX FROM syain\G
*************************** 1. row ***************************
Table: syain
Non_unique: 0
Key_name: PRIMARY
Seq_in_index: 1
Column_name: No
Collation: A
Cardinality: 100
Sub_part: NULL
Packed: NULL
Comment:
2 rows in set (0.00 sec)

-------------ここまで---------------------------------------------

上記項目は以下のようになっています。
Table ...テーブル名
Non_unique ...一意性制約があるか。あれば0、なければ1
Key_name ...インデックス名
Seq_in_index...マルチカラムインデックスの列番号
Column_name ...カラム名
Cardinality ...この列に含まれるユニークな値の数
Sub_part ...インデックスになっている文字列
Packed ...キーがどのようにパックされるか
Comment ...コメント

この社員テーブルでは主キーが「No」で
他にインデックスは使用されていないことがわかります。
なお、SQL文の最後に「\G」をつけると
問い合わせ結果を縦一列に表示出来るので見やすくなります。

では、この社員テーブルの社員名に、インデックスを追加します。
インデックスを追加するには以下のコマンドを用います。

ALTER TABLE [テーブル名] ADD INDEX ([カラム名]);

実行して「Query OK,」と表示されれば、定義変更成功です。

例)社員テーブルの社員名にインデックスを追加する

-------------ここから---------------------------------------------

mysql> ALTER TABLE syain ADD INDEX (syainname);
Query OK, 100 rows affected (0.08 sec)
Records: 100 Duplicates: 0 Warnings: 0

-------------ここまで---------------------------------------------

再びテーブルのインデックスの状態を確認すると
「*********2. row*********」以下にsyainnameに
インデックスが適応されたことが表示されます。

-------------ここから---------------------------------------------

mysql> SHOW INDEX FROM syain\G
*************************** 1. row ***************************
Table: syain
Non_unique: 0
Key_name: PRIMARY
Seq_in_index: 1
Column_name: No
Collation: A
Cardinality: 100
Sub_part: NULL
Packed: NULL
Comment:
*************************** 2. row ***************************
Table: syain
Non_unique: 1
Key_name: INDEX
Seq_in_index: 1
Column_name: syainname
Collation: A
Cardinality: 100
Sub_part: NULL
Packed: NULL
Comment:
2 rows in set (0.00 sec)

-------------ここまで---------------------------------------------

システム周りのお悩みを解決します

まずは無料ダウンロード

この記事に関連する記事の一覧


システム開発ブログ

Twitterでilovex_officialをフォローしてください

カテゴリー

以前の部署別ブログ

ページのトップ