複合インデックスとは?ふくごういんでっくす
複合インデックスとは、複数の列を指定した順序で連結した値をキーにする索引。先頭列から順に並ぶため、先頭列を含む条件でしか探索に使えず、列の順序を検索条件の使われ方に合わせて決めることが物理設計の要点になる。ログ分析や監査証跡の検索のように「利用者と期間」で絞る問合せでは、複合索引の有無と列順が応答時間を桁で変える。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
監査ログやアクセスログは1日に数百万行たまり、インシデント調査で「この利用者がこの期間に何をしたか」を引くとき、索引が無ければ全件走査で数十分かかる。列ごとに別々の索引を張っても、DBMSは基本的に1つしか使わないため十分に絞れない。複数列を1本の索引にまとめる複合索引はこの問題への答えで、支援士ではログ設計と性能要件の両面で問われる。
具体例
PostgreSQLの監査ログテーブルに(利用者ID, 記録日時)の複合索引を張ると、「利用者Aの先週の操作」も「利用者Aの全操作」も索引で引ける。しかし「先週の全利用者の操作」のように記録日時だけを条件にすると先頭列が無いため索引が使われず、全件走査に落ちる。
試験での引っ掛け
「列を多く入れるほど効く」は誤りで、キーが長くなると索引が肥大し更新コストも増す。等価条件(=)の列を前、範囲条件(BETWEEN)の列を後ろに置かないと後続列の絞り込みが効かない。暗号化した列は値の並びが意味を失うため、複合索引の一部にしても範囲検索には使えない点はセキュリティ設計との接点として押さえる。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。