Różnica między B-Tree a Bitmapą

B-drzewo i mapa bitowa

Istnieją dwa typy indeksów używanych w Oracle. Są to B-Tree i Bitmap. Indeksy te służą do dostrajania wydajności, co w efekcie sprawia, że ​​wyszukiwanie rekordów i ich szybkie wyszukiwanie jest dość szybkie. Funkcje indeksu tworzą wpis dla wszystkich wartości pojawiających się w indeksowanych kolumnach. Indeksy B-drzewa są typem używanym przez systemy OLTP i które są głównie implementowane domyślnie. Z drugiej strony bitmapa ma postać wysoce skompresowanego formatu indeksu, który w większości przypadków jest wykorzystywany w hurtowniach danych.

Bitmapę można ogólnie określić jako metodę indeksowania, jednak można oczekiwać korzyści w zakresie wydajności i oszczędności pamięci. Jak wspomniano wcześniej, jego zastosowanie znajduje się głównie w środowisku hurtowni danych. Powodem tego jest fakt, że aktualizacje danych nie są tak częste, a zapytania ad hoc są bardziej w środowisku. Przy wdrażaniu mapy bitowej preferowane są niskie dane kardynalne. Mapa bitowa jest preferowanym wyborem dla elementów kolumn, które mają niskie opcje, takie jak płeć, które będą miały tylko 2 wartości i są preferowane. Dane statyczne w hurtowni są również dobrą cechą danych, które zostałyby doskonale zaimplementowane przy użyciu mapy bitowej. Inną cechą bitmapy jest strumień bitów, w którym każdy bit jest implementowany do wartości kolumny w jednym wierszu tabeli.

Z drugiej strony indeks B-drzewa jest indeksem tworzonym na kolumnach zawierających bardzo unikalne wartości. Indeks B-Tree ma uporządkowane pozycje, przy czym każda pozycja ma wartość klucza wyszukiwania i wskaźnik, który odnosi się do danego wiersza i wartości. W przypadku znalezienia przez serwer pasującego ograniczenia związanego z daną wartością, wskaźnik jest wdrażany w celu pobrania wiersza.

Jedną z różnic między nimi jest to, że w B-drzewie występuje niskie powielanie i wysoka współrzędność, podczas gdy w Bitmapie dzieje się odwrotnie. Mapa bitowa ma wysoki stopień duplikacji i niską serdeczność. Indeks bitmap jest postrzegany jako korzystniejszy niż indeks B-Tree, ponieważ ma tabele zawierające miliony wierszy, ponieważ określone kolumny mają niską liczność. W związku z tym indeksy w mapie bitowej oferują lepszą wydajność niż indeksy B-drzewa.

B-Drzewa wydają się być wyjątkowo szybkie, gdy zbierany jest mały zestaw danych, w większości przypadków dane nie powinny przekraczać 10% wielkości bazy danych. Te dwa działają razem, gdy istnieje wiele różnych wartości, które są indeksowane. Jest także unikatowe dla B-Tree, że można połączyć kilka indeksów, aby stworzyć bardzo wydajny program. Z drugiej strony bitmapa działa najlepiej, gdy istnieją niższe wartości indeksowane dla maksymalnej wydajności.

B-drzewa są słabe, jeśli chodzi o wyszukiwanie większych podzbiorów danych, które przekraczają 10% danych podzbioru. Bitmapa podejmuje to wyzwanie, aby zapewnić wysokiej jakości wyniki, ponieważ działa lepiej, gdy jest kilka wyraźnych wartości.

Jeśli w zajętej tabeli korzystającej z B-drzewa znajduje się wiele indeksów, problem może powstać w wyniku niewielkich kar nakładanych podczas wstawiania indeksowanych danych lub w przypadku konieczności wstawiania i aktualizowania indeksowanych danych. Nie stanowi to problemu w przypadku mapy bitowej, ponieważ jest ona bardzo skuteczna we wstawianiu i aktualizowaniu wartości, niezależnie od rozmiaru, o który chodzi.

streszczenie

B-Tree i Bitmap to dwa typy indeksów używanych w Oracle
Bitmapa to metoda indeksowania, oferująca korzyści w zakresie wydajności i oszczędności pamięci
Indeks B-Tree to indeks tworzony na kolumnach zawierających bardzo unikalne wartości
B-Tree działa najlepiej z wieloma odrębnymi indeksowanymi wartościami
Mapa bitowa działa najlepiej z wieloma odrębnymi indeksowanymi wartościami