0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【DB】インデックスと複合インデックス

Last updated at Posted at 2020-03-21

インデックス

データの並び順のこと。
デフォルトは主キーになっています。

インデックスのメリット

インデックスを活用することでデータベース上から情報を取り出す速度が早くなります。
例えば下記のようなデータテーブルがあった時に、
image.png
インデックスを社員コードにするだけで、
image.png
社員コードが昇順になって表示されます。

これで下記のようなSQLを実行した際に

select * from 社員テーブル where 社員コード = 1003

インデックスが何も設定されていない場合だと全件検索しますが、
社員コードが設定されていると昇順になっているので検索時にアルゴリズム的に実行してくれます。

複数インデックス

複数の並び替えの条件でインデックスを作成すること。

例えば社員コード、所属コードでインデックスを設定した場合、
image.png
このようなデータテーブルになる。

※このようなデータテーブルにはならない

image.png

複数インデックスでは2つ目以降の引数に設定したカラムのみでは使用できない。
select * from 社員テーブル where 社員コード = 1003
この場合は全件検索してしまう。

主キーインデックスと普通のインデックスの違い

主キーインデックスはDBがデフォルトでインデックスを指定します。
そのデータベースの用途に従ってインデックスを設定すべきです。

またインデックスは複数設定することもできます。
・社員テーブル(インデックス:社員コード)
・社員テーブル(インデックス:所属コード,社員コード)
のようにそれぞれ保持することが可能です。

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?