LoginSignup
0
1

More than 3 years have passed since last update.

DBのインデックスについてまとめてみた

Posted at

インデックスとは

テーブルからデータを検索する際に使用する、特定のカラムだけを取り出してそれを並び替えたもの。

インデックスのメリット

インデックスを張ることで、データ検索時に通常よりも効率よく検索できる。
例えば以下の4カラムからなるテーブルを考える。

id name address old
1 Suzuki Tokyo 24
2 Yamada Osaka 18
3 Takahashi Nagoya 32
4 Honda Tokyo 16
5 Endou Tokyo 41
6 Morita Sapporo 27
7 Fukuda Osaka 26
8 Sano Tokyo 19
9 Kondou Nagoya 38
10 Imai Osaka 30

このテーブルでnameのカラムを対象としたインデックスを作成すると以下のようになる。

id name
5 Endou
7 Fukuda
4 Honda
10 Imai
9 Kondou
6 Morita
8 Sano
1 Suzuki
3 Takahashi
2 Yamada

idとnameだけのカラムでかつ、nameが昇順に並び替えて保存されることでnameで検索したときに容易にそのデータのidを取得できる。

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

  • テーブルのデータとは別に独自にデータを保持するので、データが追加されたときにはインデックスにもデータが保存される。
  • データ追加時に並べ替えが行われる。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1