Částečný index - Partial index

V databázích , je dílčí index , také známý jako filtrované index je index , který má určitý stav aplikované tak, že obsahuje podmnožinu řádků v tabulce .

To umožňuje, aby index zůstal malý, přestože tabulka může být poměrně velká a extrémně selektivní.

Předpokládejme, že máte tabulku transakcí, kde položky začínají STATUS = 'A' (aktivní) a poté mohou projít jinými stavy ('P' pro nevyřízené, 'W' pro "na kterých se pracuje"), než dosáhnou konečného stavu, „F“, kdy již pravděpodobně nebude znovu zpracováno.

V PostgreSQL může být užitečný částečný index definován jako:

create index partial_status on txn_table (status) 
where status in ('A', 'P', 'W');

Tento index by se neobtěžoval ukládat žádný z milionů řádků, které dosáhly „konečného“ stavu „F“, a umožnil by efektivně vyhledávat prostřednictvím tohoto indexu dotazy hledající transakce, které stále „potřebují práci“.

Podobně lze použít částečný index k indexování pouze těch řádků, kde sloupec nemá hodnotu null, což bude výhodné, když bude sloupec obvykle null.

create index partial_object_update on object_table (updated_on) 
where updated_on is not null;

Tento index by umožnil následujícímu dotazu číst pouze aktualizované n-tice:

select * from object_table 
where updated_on is not null 
order by updated_on;

Není nutné, aby podmínka byla stejná jako kritérium indexu; Stonebrakerův článek níže představuje řadu příkladů s indexy podobnými následujícím:

create index partial_salary on employee(age) 
where salary > 2100;

Podpěra, podpora

Na serveru SQL Server se tento typ indexu nazývá filtrovaný index . Částečné indexy jsou v PostgreSQL podporovány od verze 7.2, vydané v únoru 2002. SQLite podporuje částečné indexy od verze 3.8.0.

MongoDB ve své nejnovější verzi V3.2 podporuje částečné indexy.

MySQL od verze 8.0 nepodporuje částečné indexy. V MySQL se termín „částečný index“ někdy používá k označení předponových indexů, kde je v indexu uložena pouze zkrácená předpona každé hodnoty. Toto je další technika pro zmenšení velikosti indexu.

Reference

externí odkazy