Indeks klastrowy a nieklastrowy
Indeksy są bardzo ważne w każdej bazie danych. Służą do poprawy wydajności pobierania danych z tabel. Są one logicznie i fizycznie niezależne od danych w powiązanych tabelach. W związku z tym indeksy można usuwać, odtwarzać i odbudowywać bez wpływu na dane tabel podstawowych. Serwer Oracle może automatycznie utrzymywać swoje indeksy bez udziału administratora danych, gdy powiązane tabele są wstawiane, aktualizowane i usuwane. Istnieje kilka typów indeksów. Oto niektóre z nich.
1. Indeksy B-drzewa
2. Indeksy bitmapowe
3. Indeksy oparte na funkcjach
4. Indeksy z kluczem odwrotnym
5. Indeksy klastrów B-drzewa
Co to jest indeks niezwiązany z klastrami?
Z powyższych typów indeksów następujące są indeksy nieklastrowane.
• Indeks B-drzewa
• Indeks bitmapowy
• Indeks funkcji
• Indeksy z kluczem odwrotnym
Indeksy B-drzewa są najczęściej używanym typem indeksu w bazach danych. Jeśli w bazie danych zostanie wydane polecenie CREATE INDEX bez określenia typu, serwer Oracle utworzy indeks b-drzewa. Kiedy indeks b-drzewa jest tworzony w określonej kolumnie, serwer Oracle przechowuje wartości z kolumny i zachowuje odniesienie do rzeczywistego wiersza tabeli.
Indeksy bitmapowe są tworzone, gdy dane w kolumnie nie są bardzo selektywne. Oznacza to, że dane w kolumnie mają niską kardynalność. Są one specjalnie zaprojektowane dla hurtowni danych i nie jest dobrze używać indeksów bitmapowych w tabelach o dużej aktualizacji lub tabelach transakcyjnych.
Indeksy funkcyjne pochodzą z Oracle 8i. Tutaj w indeksowanej kolumnie używana jest funkcja. 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 funkcja WHERE zamknięcia zapytania wybierającego jest używana jako funkcja.
Indeksy z odwróconym kluczem są bardzo interesującym typem indeksu. Załóżmy, że kolumna zawiera wiele unikalnych danych ciągu, takich jak „miastoA”, „miastoB”, „miastoC”…itd. Wszystkie wartości mają wzór. Pierwsze cztery znaki są takie same, a kolejne części są zmienione. Tak więc, gdy indeks klucza REVERSE zostanie utworzony w tej kolumnie, Oracle odwróci ciąg i przywróci go w indeksie b-drzewa.
Wyżej wymienione typy indeksów są indeksami NIESKLASTROWANYMI. Oznacza to, że zindeksowane dane są przechowywane poza tabelą i zachowywane jest posortowane odniesienie do tabeli.
Co to jest indeks klastrowy?
Indeksy klastrowe to specjalny typ indeksów. Przechowuje dane zgodnie ze sposobem fizycznego przechowywania danych tabeli. Tak więc nie może być wielu indeksów klastrowych dla jednej tabeli. Jedna tabela może mieć tylko jeden indeks klastrowy.
Jaka jest różnica między indeksami klastrowymi a nieklastrowymi?
1. Tabela może mieć tylko jeden indeks klastrowy, ale jedna tabela może zawierać do 249 indeksów nieklastrowych.
2. Indeks klastrowy jest tworzony automatycznie po utworzeniu klucza podstawowego, ale indeks nieklastrowy jest tworzony po utworzeniu klucza unikatowego.
3. Logiczna kolejność indeksu klastrowanego jest zgodna z fizyczną kolejnością danych w tabeli, ale w indeksach nieklastrowanych tak nie jest.