Z wikipedie:B-stromy a indexy bitmap . Případy použití:
-
B-stromy jsou typickým typem indexu používaným při
CREATE INDEX ...
v databázi:- Jsou velmi rychlé, když vyberete jen malou velmi podmnožinu dat indexu (obvykle max. 5 % až 10 %)
- Fungují lépe, když máte hodně odlišných indexovaných hodnot.
- Je možné kombinovat několik indexů B-Stromu, ale jednodušší přístupy jsou často efektivnější.
- Nejsou užitečné, pokud je pro indexovaná data málo odlišných hodnot nebo když chcete získat velkou (obvykle> 10 %) podmnožinu dat.
- Každý index B-Stromu ukládá malou penalizaci při vkládání/aktualizaci hodnot v indexované tabulce. To může být problém, pokud máte hodně indexů ve velmi zaneprázdněné tabulce.
-
Bitmapové indexy jsou specializovanější variantou indexu:
- Zakódují indexované hodnoty jako bitmapy, a proto jsou velmi prostorově úsporné.
- Mají tendenci fungovat lépe, když je k dispozici málo různých indexovaných hodnot
- Optimalizátory DB mohou velmi snadno kombinovat několik indexovaných bitmap, což umožňuje efektivní provádění složitých filtrů v dotazech.
- Při vkládání/aktualizaci hodnot jsou velmi neefektivní.
Bitmapové indexy se většinou používají v aplikacích datových skladů, kde je databáze pouze pro čtení s výjimkou ETL procesů a obvykle potřebujete provádět složité dotazy proti hvězdové schéma , kde bitmapové indexy mohou urychlit filtrování na základě podmínek v tabulkách dimenzí, které obvykle nemají příliš mnoho různých hodnot.
Tyto vlastnosti činí indexy B-Tree velmi užitečnými pro urychlení vyhledávání v aplikacích OLTP, když pracujete s velmi malými datovými sadami najednou, většina dotazů se filtruje podle ID a chcete dobrý současný výkon.
Velmi krátké shrnutí:používejte indexy B-Tree ("výchozí" index ve většině databází), pokud nejste vývojář datového skladu a víte budete mít prospěch z indexu bitmapy.