インデックスとは

  • テーブルにある情報を検索する場合に「どこに何があるか」をわかりやすく説明する索引のこと

  - 索引があれば目的の情報を検索するときに効率よく探せる

  - インデックスを作成すると元のテーブルとは別にテーブルを作ることになるので処理が2倍に

インデックスのメリット

  • 検索パフォーマンスの向上

インデックスのデメリット

  • データ追加、並び替え時の処理速度の低下

インデックスの作成方法

CREATE INDEX インデックス名(省略化) ON [ONLY] テーブル名 (カラム名...)
  • 複数カラムの場合
CREATE INDEX インデックス名(省略化) ON [ONLY] テーブル名 (カラム名, カラム名)

インデックスの確認方法

  • 「¥di」コマンドの活用
¥di テーブル名.*
  • 「¥d」コマンドの活用 = インデックスの詳細を確認することができる
¥d テーブル名.インデックスカラム名

インデックスの削除

DROP INDEX インデックス名

#インデックスでクエリを高速化するパターン

 - WHERE句での絞り込み

  • ORDER BY句での並び替え

  • JOINでの結合の条件

  • where句での絞り込み

    - 「完全一致検索」であればインデックスが使われて高速化可能

    - 「部分一致検索」や「後方一致検索」では使えない

  1. order by句での並び替え

    - インデックスの並び替えも高速化可能 

  1. joinでの結合条件

    - joinでの結合処理は内部で並び替え処理を行なっているのでインデックスのある列を用いると高速化可能

参考文献

https://style.potepan.com/articles/25208.html