Leksykon IT › Bazy danych › Indeks wyrażeniowy

Indeks wyrażeniowy

Bazy danych Svenska → Zaktualizowano: 2026-10-06

Indeks zakładany na wyniku wyrażenia lub funkcji, a nie bezpośrednio na kolumnie. CREATE INDEX ON users (lower(email)) przyspiesza WHERE lower(email) = .... Nazywany też indeksem funkcyjnym.

Zastosowania: wyszukiwanie bez rozróżniania wielkości liter (lower()), indeksowanie pola JSONB ((data->>'country')), klucze obliczane (date_trunc('day', created_at)). Wymaganie: wyrażenie musi być IMMUTABLE (deterministyczne — now() nie zadziała). Zapytanie musi używać dokładnie tego samego wyrażenia co indeks, aby planista go wykorzystał. Koszt: indeks jest przeliczany przy każdym zapisie. Różni się od kolumny generowanej (która materializuje wartość w prawdziwej kolumnie) — indeks wyrażeniowy przechowuje tylko zindeksowany wynik. Pozwala uniknąć zbędnych kolumn.

← Wróć do leksykonu