インデックスを作成する
インデックスを作成するには「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を行う場合のパフォースが少し下がります。
必要なフィールドに適切にインデックスを作成しましょう。