Co to jest indeks?
Indeks to klucz zbudowany z jednej lub więcej kolumn bazy danych, który przyspiesza pobieranie wierszy z tabeli lub widoku. Ten klucz pomaga bazie danych, takiej jak Oracle, SQL Server, MySQL itp., Szybko znaleźć wiersz powiązany z wartościami klucza.
Dwa typy indeksów to:
- Indeks klastrowy
- Indeks nieklastrowy
W tym samouczku , dowiesz się:
- Co to jest indeks?
- Co to jest indeks klastrowy?
- Co to jest indeks nieklastrowy?
- Charakterystyka indeksu klastrowego
- Charakterystyka indeksów nieklastrowych
- Przykład indeksu klastrowego
- Przykład indeksu nieklastrowego indeks klastrowy
- Różnice między indeksem klastrowym a indeksem nieklastrowym
- Zalety indeksu klastrowego
- Zalety indeksu nieklastrowego
- Wady klastrowego Indeks
- Wady indeksu nieklastrowego
Co to jest indeks klastrowy?
Indeks klastrowy to typ indeksu, który sortuje wiersze danych w tabeli na ich kluczowe wartości. W bazie danych istnieje tylko jeden indeks klastrowy na tabelę.
Klastrowany indeks określa kolejność, w jakiej dane są przechowywane w tabeli, która może być sortowana tylko w jeden sposób. Tak więc dla każdej tabeli może istnieć tylko jeden indeks klastrowy. W RDBMS zazwyczaj klucz podstawowy umożliwia utworzenie indeksu klastrowego na podstawie tej konkretnej kolumny.
Co to jest indeks nieklastrowy?
Indeks nieklastrowy przechowuje dane w jednym miejscu, a indeksy w innym. Indeks zawiera wskaźniki do lokalizacji tych danych. Pojedyncza tabela może mieć wiele indeksów nieklastrowych, ponieważ indeks w indeksie nieklastrowym jest przechowywany w różnych miejscach.
Na przykład książka może mieć więcej niż jeden indeks, jeden na początku, który wyświetla zawartość jednostki książki, podczas gdy drugi indeks przedstawia indeks terminów w porządku alfabetycznym.
Indeks nieklastrowy jest zdefiniowany w nie porządkującym polu tabeli. Ten typ metody indeksowania pomaga zwiększyć wydajność zapytań, które używają kluczy, które nie są przypisane jako klucz podstawowy. Indeks nieklastrowy umożliwia dodanie unikalnego klucza do tabeli.
KLUCZOWA RÓŻNICA
- Indeks klastra to typ indeksu, który sortuje wiersze danych w tabeli według ich kluczowych wartości, podczas gdy indeks nieklastrowy przechowuje dane w jednym miejscu i indeksy w innym miejscu.
- Indeks klastrowy przechowuje strony danych w węzłach liści indeksu, podczas gdy metoda indeksu nieklastrowego nigdy nie przechowuje stron danych w węzłach liści indeksu.
- Indeks klastra nie wymaga dodatkowe miejsce na dysku, podczas gdy indeks nieklastrowy wymaga dodatkowej przestrzeni dyskowej.
- Indeks klastra zapewnia szybszy dostęp do danych, z drugiej strony indeks nieklastrowy jest wolniejszy.
Charakterystyka indeksu klastrowego
- Domyślne i posortowane przechowywanie danych
- Użyj tylko jednej lub więcej niż jednej kolumny dla indeksu
- Pomaga do przechowywania danych i indeksowania razem
- Fragmentacja
- Operacje
- Klastrowe skanowanie indeksu i przeszukiwanie indeksu
- Wyszukiwanie klucza
Charakterystyka indeksów nieklastrowanych
- Przechowuj tylko wartości kluczy
- Wskaźniki do wierszy indeksu sterty / klastrowanego
- Zezwala na dane pomocnicze dostęp
- Przejście do danych
- Operacje skanowania indeksu i przeszukiwania indeksu
- Możesz utworzyć Indeks klastrowy dla tabeli lub widoku
- Każdy wiersz indeksu w indeksie nieklastrowym przechowuje wartość klucza nieklastrowego i lokalizator wiersza
Przykład indeksu klastrowego
W poniższym przykładzie SalesOrderDetailID jest indeksem klastrowym. Przykładowe zapytanie do pobrania danych
SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6
Przykład indeksu nieklastrowego
W poniższym przykładzie indeks nieklastrowy jest tworzony dla OrderQty i ProductID w następujący sposób
CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)
Następujące zapytanie zostanie pobrane szybciej w porównaniu z indeksem klastrowym.
SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714
Różnice między grupami Indeks i indeks bezklastrowy
Parametry | Klastrowe | Bezklastrowe |
---|---|---|
Użyj dla | Możesz sortować rekordy i fizycznie przechowywać indeks klastrowy w pamięci zgodnie z kolejnością . | Indeks nieklastrowy pomaga tworzyć logiczną kolejność wierszy danych i używa wskaźników do fizycznych plików danych. |
Metoda przechowywania | Umożliwia przechowywanie stron danych w węzłach-liściach indeksu. | Ta metoda indeksowania nigdy nie przechowuje stron danych w węzłach-liściach indeksu. |
Rozmiar | Rozmiar indeksu klastrowego jest dość duży. | Rozmiar indeksu nieklastrowego jest niewielki w porównaniu z indeksem klastrowym. |
Dostęp do danych | Szybciej | Wolniej w porównaniu z indeksem klastrowym |
Dodatkowe miejsce na dysku | Niewymagane | Wymagane do oddzielnego przechowywania indeksu |
Typ klucza | Domyślnie podstawowe klucze tabeli są indeksami klastrowymi. | Może być używany z unikalnym ograniczeniem tabeli, która działa jak klucz złożony. |
Główna funkcja | Klastrowany indeks może zwiększyć wydajność pobierania danych. | Powinien być tworzony na kolumnach, które są używane w złączeniach. |
Zalety indeksu klastrowego
Zalety / zalety indeksu klastrowego to:
- Klastrowane indeksy są idealną opcją dla zakresu lub grupowania według zapytań typu max, min, count
- W tego typu indeksach wyszukiwanie może przejść bezpośrednio do określonego punktu w danych, może dalej czytać stamtąd.
- Metoda indeksu klastrowego wykorzystuje mechanizm lokalizacji do zlokalizowania pozycji indeksu na początku zakresu.
- Jest to skuteczna metoda wyszukiwania zakresu, gdy żądany jest zakres wartości kluczy wyszukiwania.
- Pomaga zminimalizować transfery stron i zmaksymalizować trafienia w pamięci podręcznej.
Zalety indeksu nieklastrowego
Zalety korzystania z indeksu nieklastrowego to:
- Indeks nieklastrowy pomaga do szybkiego pobierania danych z tabeli bazy danych.
- Pomaga uniknąć kosztów ogólnych związanych z indeksem klastrowym.
- Tabela może mieć wiele indeksów nieklastrowych w systemie RDBMS. Dzięki temu można go użyć do utworzenia więcej niż jednego indeksu.
Wady indeksu klastrowego
Oto wady / wady korzystania z indeksu klastrowego:
- Wiele wstawień w niesekwencyjnych kolejność
- Klastrowany indeks tworzy wiele stałych podziałów stron, które obejmują strony danych oraz strony indeksowe.
- Dodatkowa praca dla SQL w zakresie wstawiania, aktualizacji i usuwania.
- Indeks klastrowy wymaga więcej czasu, aby zaktualizować rekordy, gdy pola w indeksie klastrowym ulegają zmianie.
- Węzły liści przeważnie zawierają strony danych w indeksie klastrowym.
Wady indeksu nieklastrowego
Oto wady / wady korzystania z indeksu nieklastrowego: