インデックスとは?効果とコスト

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

インデックスとは(全体像)

インデックスとは、データベースの検索を速くするための「索引」のことだ。

本でたとえると分かりやすい。本の巻末にある「索引(さくいん)」を思い浮かべよう。索引があると、目的の言葉が何ページにあるか、すぐ分かる。インデックスも同じで、データベースの中から、目的のデータをすばやく見つけられる

代表的なのは、B-Tree(ビーツリー)インデックスで、範囲を指定した検索にも強い。

ここで一番のポイント。インデックスは、検索を速くする。索引がなければ、最初から1つずつ探すことになるが、索引があれば、ずっと速く見つけられる。


詳しく:効果とコスト

ここが心臓部。ポイントを表で押さえよう。

インデックスのポイント

項目やさしい意味
正体検索を速くするための索引(本の巻末索引のよう)
効果目的のデータをすばやく見つけられる(検索が速い)
コスト作るのに手間・容量、更新のたびに索引も直す負担
使い方全列ではなく、よく検索する列に絞って作る

インデックスは便利だが、いいことばかりではない。ここで一番のポイント。インデックスには、コスト(負担)がある。索引を作るのに時間と容量がかかり、データを更新するたびに、索引も直す必要がある(更新の負担)。「インデックスは万能で、たくさん作るほど良い」と思い込むと誤りになる。

だから、全部の列に作るのではなく、よく検索する列に絞って作るのが基本だ。

わかりやすく言い換えると

身近なたとえで整理しよう。

インデックスは、「本の巻末索引。目的の言葉をすぐ見つけられる」イメージ。データベースの検索を速くする。

「コストがある」というのは、索引を作る手間がかかり、内容が変わると索引も直す必要があること。要するに、便利だが、ただではない。

「列に絞る」というのは、全部の列ではなく、よく検索する列だけに作ること。つまり、必要なところに絞って使う。


試験のツボ

🔴 一番出る:インデックスの正体

①データベースの検索を速くするための索引

②本の巻末索引のように、目的のデータをすばやく見つける

🔴 次に出る:効果

①検索が速くなる(索引がないより、ずっと速い)

②代表はB-Treeインデックス(範囲検索にも強い)

🟡 押さえると安定:コストと使い方

①作成・更新の負担がある(万能ではない)

②全列ではなく、よく検索する列に絞って作る


よくある間違い

「インデックスは万能で、たくさん作るほど良い」→ ✗  作成・更新の負担がある。よく検索する列に絞って作るのが基本。

「インデックスは、すべての列に作るのがよい」→ ✗  全列ではなく、よく検索する列に絞って作る。

「インデックスは、データベースの検索を遅くするものだ」→ ✗  逆で、インデックスは検索を速くするための索引。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(インデックスの正体)

📝 オリジナル問題 1 インデックスの正体

インデックスに関する次の記述のうち、最も適切なものはどれか。

  1. データベースにおける検索を速くするための、索引のことである
  2. 社員の出退勤を記録して、毎月の給与を計算するためのしくみだ
  3. 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指す
  4. 完成したシステムを宣伝して、より多く売るための広告活動である
エーアイコアラ
エーアイコアラ 解答・解説

解答は 1 です。

インデックスは、データベースの検索を速くするための、索引なのです。本の巻末索引のイメージなります。

選択肢2は給与計算、選択肢3は請求書の事務、選択肢4は広告で、どれも違うのです。

選択肢判定理由
1検索を速くするための索引で正しい
2給与計算のしくみではない
3請求書の事務の話
4広告活動ではない

オリジナル問題2(効果)

📝 オリジナル問題 2 インデックスの効果

インデックスの効果に関する次の記述のうち、最も適切なものはどれか。

  1. 社員の給与を計算するときだけ、効果が出るとされているものである
  2. 取引先への請求書の枚数しだいで、効果が決まるとされているのだ
  3. 目的のデータをすばやく見つけられるので、検索が速くなるのである
  4. データベースの検索を、わざと遅くするものだとされているのである
エーアイコアラ
エーアイコアラ 解答・解説

解答は 3 です。

インデックスは、目的のデータをすばやく見つけられ、検索が速くなるのです。索引がないより、ずっと速いなります。

選択肢1の給与、選択肢2の請求書、選択肢4の「わざと遅くする」は、いずれも違うのです。

選択肢判定理由
1給与計算で効果が出るのではない
2請求書の枚数で決まるのではない
3すばやく見つけ検索が速くなるで正しい
4検索を速くするもの

オリジナル問題3(コストと使い方)

📝 オリジナル問題 3 インデックスのコスト

インデックスのコストに関する次の記述のうち、最も適切なものはどれか。

  1. 社員の給与を計算するときだけ、コストがかかるとされているものだ
  2. 作成・更新の負担があり、よく検索する列に限定して作るものである
  3. 取引先への請求書の枚数しだいで、コストが決まるとされているのだ
  4. コストはいっさいなく、すべての列に作るのがよいとされているのだ
エーアイコアラ
エーアイコアラ 解答・解説

解答は 2 です。

インデックスは、作成・更新の負担があり、よく検索する列に絞って作るのです。万能ではないので、必要なところに絞るなります。

選択肢1の給与、選択肢3の請求書、選択肢4の「すべての列に作る」は、いずれも違うのです。

選択肢判定理由
1給与計算でコストがかかるのではない
2負担があり列に絞って作るで正しい
3請求書の枚数で決まるのではない
4コストがあり、全列には作らない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る