IT用語集 › データベース › 部分インデックス

部分インデックス

データベース Svenska → 更新: 2026-10-22

WHERE条件で定義した行の部分集合だけを対象とするインデックス。CREATE INDEX ON orders (created_at) WHERE status = 'pending'のように書く。小さく、速く、維持コストも低い。

用途は「関心のある行」だけを索引化すること。典型例は論理削除(WHERE deleted_at IS NULLで削除済みの行を無視)、キュー内の有効なジョブ(大半は完了済みか保管済み)、部分集合に対する一意制約(UNIQUE ... WHERE activeなら非アクティブな重複を許す)である。行の99%が「完了」なら、インデックスは100分の1の大きさになる。プランナーは、クエリのWHERE句がインデックスの条件に一致または含意される場合にだけ使う。SQL Serverでは「フィルター選択インデックス」と呼ぶ。計算結果を索引化する式インデックスとは別物で、Postgresでは非常によく使われる最適化である。

← 用語集に戻る