データベースインデックスはデータベースのパフォーマンス向上で最も大事な要素の一つです。イメージしやすい例としては、本の巻末にある「索引」を思い浮かべるとよいでしょう。索引はキーワードごとにページ番号をリスト化しており、目的の情報がどこに書かれているかを素早く探し出せます。仮に索引がなければ、読者は最初から最後まで全ページをめくって探す羽目になります。
ここではシステムデザインに重要な2つのデータベースインデックスについて解説します。
インデックスの基本概念
データベースインデックスは、テーブル内のデータへの高速なアクセスを可能にするデータ構造です。大量のデータが格納されたテーブルの中から、特定の行を効率よく探し出すことができます。もしインデックスがなければ、データベースは条件に一致する行を見つけるために、テーブル全体を先頭から順番にスキャン(いわゆるフルテーブルスキャン)しなければならず、データ量が増えるにつれて検索時間も線形的に増大します。これではスケーラブルなシステムとは言えません。