インデックスを作成する

インデックスを作成するには「alter table ~ add index」コマンドを使用します。

alter table テーブル名 add index インデックス名(カラム名);

bookテーブルのauthor_idにインデックスを作成するサンプルです。インデックス名は、自由につけることができますが、わかりやすい名前を心がけましょう。

alter table book add index book_author_id(author_id);

作成されたインデックスを確認したい場合は、以下の記事を参考にしてください。

インデックスを削除したい場合は、以下の記事を参考にしてください。

インデックスとは?

インデックスとは、行の選択のパフォーマンスを上げるための技術です。

インデックスでselectが劇的に速くなる

1行づつ検索していく線形探索の場合はO(n)の計算量になるのに対し、インデックスを作成すると、バランス木というアルゴリズムで探索するので、O(log(n))の計算量になります。

一般的に、行数が多いテーブルの検索対象のフィールドに対して、インデックスを作成します。

インデックスを作成するとselectが劇的に速くなります。

インデックスを作成するデメリット

インデックスを作成するデメリットもあります。

インデックスを作成すると、インデックスの分だけ、データベースの容量が増えます。

insert時に、インデックスを再構築するので、insertを行う場合のパフォースが少し下がります。

必要なフィールドに適切にインデックスを作成しましょう。

関連情報