Indeks klastrów a indeks nieklastrowy
Indeksy są bardzo ważne w każdej bazie danych. Służą do poprawy wydajności pobierania danych z tabel. Są logicznie i fizycznie niezależne od danych w powiązanych tabelach. Dlatego indeksy można upuszczać, odtwarzać i przebudowywać bez wpływu na dane tabel podstawowych. Serwer Oracle może automatycznie utrzymywać swoje indeksy bez udziału DBA, gdy powiązane tabele są wstawiane, aktualizowane i usuwane. Istnieje kilka typów indeksów. Tutaj jest kilka z nich.
1. Indeksy B-drzewa
2. Indeksy bitmapowe
3. Indeksy funkcyjne
4. Indeksy odwrotnego klucza
5. Indeksy klastrów B-drzewa
Co to jest indeks nieklastrowy?
Z powyższych typów indeksów należą indeksy nieklastrowane.
• Indeks B-drzewa
• Indeks bitmapowy
• Indeks oparty na funkcjach
• Indeksy odwrotnego klucza
Indeksy B-drzewa są najczęściej używanym typem baz danych. Jeśli w bazie danych zostanie wydane polecenie CREATE INDEX, bez określenia typu, serwer Oracle utworzy indeks b-drzewa. Po utworzeniu indeksu b-drzewa w określonej kolumnie, serwer oracle przechowuje wartości kolumny i zachowuje odniesienie do rzeczywistego wiersza tabeli.
Indeksy bitmapowe są tworzone, gdy dane kolumn nie są bardzo selektywne. Oznacza to, że dane w kolumnie mają małą liczność. Są one specjalnie zaprojektowane dla hurtowni danych i nie jest dobrze używać indeksów bitmapowych w tabelach o dużej możliwości aktualizacji lub transakcyjnych.
Indeksy funkcjonalne pochodzą z Oracle 8i. Tutaj funkcja jest używana w indeksowanej kolumnie. Dlatego w indeksie funkcjonalnym dane kolumn nie są sortowane w normalny sposób. Sortuje wartości kolumn po zastosowaniu funkcji. Są one bardzo przydatne, gdy GDZIE zostanie zamknięte wybrane zapytanie.
Indeksy z odwrotnym kluczem są bardzo interesującym rodzajem indeksu. Załóżmy, że kolumna zawiera wiele unikatowych danych łańcuchowych, takich jak „cityA”, „cityB”, „cityC”… itd. Wszystkie wartości mają wzorzec. Pierwsze cztery znaki są takie same, a kolejne części są zmieniane. Tak więc, gdy w tej kolumnie zostanie utworzony indeks klucza REVERSE, Oracle odwróci ciąg i przywróci go w indeksie b-drzewa.
Wyżej wymienione typy indeksów są indeksami NIEKLUSTEROWANYMI. Oznacza to, że indeksowane dane są przechowywane poza tabelą i zachowane jest posortowane odniesienie do tabeli.
Co to jest Indeks klastrowany?
Indeksy klastrowe to specjalny typ indeksów. Przechowuje dane zgodnie ze sposobem fizycznego przechowywania danych w tabeli. Tak więc dla jednej tabeli nie może być wielu indeksów klastrowych. Jedna tabela może mieć tylko jeden indeks klastrowany.
Jaka jest różnica między indeksami klastrowanymi i nieklastrowanymi? 1. Tabela może mieć tylko jeden indeks klastrowany, ale w jednej tabeli może znajdować się do 249 indeksów nieklastrowych. 2. Indeks klastrowany jest tworzony automatycznie po utworzeniu klucza podstawowego, ale indeks nieklastrowany jest tworzony po utworzeniu klucza unikalnego. 3. Logiczna kolejność indeksu klastrowego jest zgodna z fizyczną kolejnością danych tabeli, ale w indeksach nieklastrowanych nie. |