Partial Index
Ein Index, der nur eine durch eine WHERE-Bedingung definierte Teilmenge der Zeilen abdeckt. CREATE INDEX ON orders (created_at) WHERE status = 'pending'. Kleiner, schneller, günstiger zu pflegen.
Anwendungsfall: nur die „interessanten" Zeilen indexieren. Klassiker: Soft-Delete (WHERE deleted_at IS NULL → gelöschte Zeilen werden ignoriert), aktive Jobs in einer Warteschlange (die meisten sind erledigt oder archiviert), Unique-Bedingungen auf einer Teilmenge (UNIQUE ... WHERE active erlaubt mehrere inaktive Duplikate). Der Gewinn: Sind 99 % der Zeilen „erledigt", wird der Index hundertmal kleiner. Der Planer nutzt ihn nur, wenn die WHERE-Klausel der Abfrage die Indexbedingung erfüllt oder impliziert. SQL Server nennt das Konzept „Filtered Index". Zu unterscheiden vom Expression Index, der eine Berechnung indexiert, keine Teilmenge. Eine sehr verbreitete Postgres-Optimierung.