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

式インデックス

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

列そのものではなく、式や関数の計算結果に対して張るインデックス。CREATE INDEX ON users (lower(email))とすればWHERE lower(email) = ...が速くなる。関数インデックスとも呼ばれる。

典型的な用途は、大文字小文字を区別しない検索(lower())、JSONBのフィールド((data->>'country'))、計算キー(date_trunc('day', created_at))など。条件として、式はIMMUTABLE(決定的)でなければならず、now()は使えない。また、プランナーがインデックスを使うには、クエリがインデックスと全く同じ式を書いている必要がある。

代償は、書き込みのたびに値が再計算されること。生成列(値を実際の列に実体化する)とは異なり、式インデックスは索引された結果だけを保持する。冗長な列を増やしたくないときによく使われる。

← 用語集に戻る