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 3 years have passed since last update.

【SQL入門】インデックスによる高速化のパターン

Last updated at Posted at 2020-08-20

内容

インデックスによる高速化の典型的なパターン3つをまとめる。

1. WHERE 句による絞り込み

-- インデックスのある列を WHERE 句に指定する(完全一致検索)
SELECT * FROM movie WHERE genre_id = 1;

上の例の場合、genre_id カラムにインデックスが作成されている時、高速に検索結果を得ることができる。

DBMSによっては、前方一致検索でもインデックスを利用した高速な検索が行われることがある。
ただし、部分一致検索や後方一致検索ではインデックスを利用することができない。

2. ORDER BY による並び替え

-- インデックスのある列を ORDER BY 句に指定する
SELECT * FROM movie ORDER BY genre_id;

インデックスには並び替えを高速化する効果もあるため、ORDER BY の処理が速くなる。

3. JOIN による結合の条件

-- インデックスのある列を JOIN の結合条件に指定する
SELECT * FROM movie JOIN genre ON movie.genre_id = genre.id;

結合処理は内部で並び替えを行っているため、インデックスのある列を使うと高速になる。

参考図書:スッキリわかるSQL入門 第2版

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?