「インデックスと主キーって同じじゃないの?」
応用情報技術者試験でもデータベース分野で頻出ですが、
- どちらも検索を速くする?
- 主キーを設定するとインデックスも作られる?
- 重複できる?
- 役割の違いが分からない…
で混乱する人がかなり多いテーマです。
この記事では、
- 主キーとは?
- インデックスとは?
- 違い
- メリット・デメリット
- 試験での頻出ポイント
を分かりやすく解説します!
まず結論
主キー
「レコードを一意に識別するための列」
インデックス
「検索を高速化するための仕組み」
超簡単にいうと
| 項目 | 目的 |
|---|---|
| 主キー | 識別 |
| インデックス | 高速検索 |
主キーとは?
超頻出!
主キー
Primary Key
役割
レコードを
一意に識別する
例
社員テーブル
| 社員ID | 氏名 |
|---|---|
| 1001 | 山田 |
| 1002 | 鈴木 |
| 1003 | 佐藤 |
この場合
社員ID
が主キー。
主キーの特徴
超重要!
重複不可
1001
1001
↓
❌NG
NULL不可
社員ID = NULL
↓
❌NG
なぜ必要?
データを確実に識別するため。
インデックスとは?
超頻出!
インデックス
Index
役割
検索を高速化する。
イメージ
本の索引
索引
↓
目的ページへ移動
データベースも同じ
インデックスなし
1件ずつ確認
↓
遅い
インデックスあり
目的データへ直接移動
↓
速い
例
社員テーブル
| 社員ID | 氏名 |
|---|---|
| 1001 | 山田 |
| 1002 | 鈴木 |
| 1003 | 佐藤 |
氏名検索が多い場合
CREATE INDEX idx_name
ON 社員(氏名);
インデックスの特徴
重要!
重複可能
山田
山田
山田
↓
OK
NULL可能
多くのDBでは可能。
インデックスと主キーの違い
超頻出!
| 比較 | 主キー | インデックス |
|---|---|---|
| 目的 | 一意識別 | 高速検索 |
| 重複 | 不可 | 可能 |
| NULL | 不可 | 可能 |
| 必須 | 推奨・実質必須 | 任意 |
| 個数 | 通常1つ | 複数可能 |
主キーとインデックスの関係
超重要!
多くのDBMSでは
主キー作成時に自動でインデックス作成
される。
イメージ
主キー設定
↓
自動でインデックス生成
インデックスのデメリット
頻出!
検索
⭕ 高速
更新
❌ 遅くなる
なぜ?
インデックスも更新する必要があるから。
イメージ
INSERT
UPDATE
DELETE
↓
インデックス更新発生
応用情報で超頻出
かなり狙われる👇
- 主キー
- インデックス
- NULL
- 重複
- 検索高速化
よくあるひっかけ
「インデックスはレコードを一意に識別する」
→ ❌違う!
インデックスは
検索高速化
が目的。
1分で復習!
主キー
レコード識別
インデックス
検索高速化
主キー
- 重複不可
- NULL不可
インデックス
- 重複可
- NULL可
練習問題
問題
インデックスの主な目的として最も適切なものはどれか。
ア
レコードを一意に識別する
イ
検索処理を高速化する
ウ
データ容量を削減する
エ
排他制御を行う
解答
正解:イ
解説
インデックスは検索時のアクセス効率を向上させるための仕組みです。
まとめ
主キーとは
「レコードの身分証明書」
インデックスとは
「データベースの索引」
超重要
- 主キー=識別
- インデックス=高速検索
- 重複可否
- NULL可否
まずは、
「主キー=誰かを特定する番号」
「インデックス=本の目次」
このイメージを持つとかなり理解しやすくなります!
知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…
まずは無料でキャリア相談

コメント