Indeks klastrowy a indeks nieklastrowy: kluczowe różnice w porównaniu z przykładem

Spisie treści:

Anonim

Co to jest indeks?

Indeks to klucz zbudowany z jednej lub więcej kolumn w bazie 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 kluczowymi wartościami.

Dwa rodzaje 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
  • Różnice między indeksem klastrowym a indeksem nieklastrowanym
  • Zalety indeksu klastrowego
  • Zalety indeksu nieklastrowego
  • Wady indeksu klastrowego
  • Wady indeksu nieklastrowego

Co to jest indeks klastrowy?

Indeks klastra to rodzaj indeksu, który sortuje wiersze danych w tabeli według ich kluczowych wartości. W bazie danych istnieje tylko jeden indeks klastrowy na tabelę.

Indeks klastrowy określa kolejność, w jakiej dane są przechowywane w tabeli, którą można sortować tylko w jeden sposób. Tak więc dla każdej tabeli może istnieć tylko jeden indeks klastrowy. W RDBMS zwykle 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 nieuporzą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 klastrowy to typ indeksu, który sortuje wiersze danych w tabeli według ich kluczowych wartości, podczas gdy indeks nieklastrowy przechowuje dane w jednej lokalizacji, a indeksy w innej lokalizacji.
  • 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 dodatkowego miejsca na dysku, podczas gdy indeks nieklastrowy wymaga dodatkowego miejsca na dysku.
  • Indeks klastrowy 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 w przechowywaniu danych i indeksowaniu razem
  • Podział
  • Operacje
  • Klastrowe skanowanie indeksu i przeszukiwanie indeksu
  • Key Lookup

Charakterystyka indeksów nieklastrowych

  • Przechowuj tylko wartości kluczowe
  • Wskaźniki do wierszy indeksu sterty / klastrowanego
  • Zezwala na dostęp do danych pomocniczych
  • Przejdź do danych
  • Operacje skanowania indeksu i przeszukiwania indeksu
  • Możesz utworzyć indeks nieklastrowy dla tabeli lub widoku
  • Każdy wiersz indeksu w indeksie nieklastrowym przechowuje wartość klucza nieklastrowego i lokalizator wierszy

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 nieklastrowany 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 indeksem klastrowym a indeksem nieklastrowanym

Parametry Zgrupowane Nieklastrowy
Używać do Możesz sortować rekordy i fizycznie przechowywać indeks klastrowany w pamięci zgodnie z kolejnością. Indeks nieklastrowy pomaga w tworzeniu logicznej kolejności wierszy danych i używa wskaźników do fizycznych plików danych.
Sposób przechowywania Umożliwia przechowywanie stron danych w węzłach liści indeksu. Ta metoda indeksowania nigdy nie przechowuje stron danych w węzłach liści 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 Nie wymagane Wymagane do oddzielnego przechowywania indeksu
Typ klucza Domyślnie podstawowe klucze tabeli to indeks klastrowy. Może być używany z unikatowym ograniczeniem w tabeli, która działa jak klucz złożony.
Główna cecha Indeks klastrowy może poprawić wydajność pobierania danych. Powinien zostać utworzony na kolumnach, które są używane w połączeniach.

Zalety indeksu klastrowego

Zalety / zalety indeksu klastrowego to:

  • Indeksy klastrowe są idealną opcją dla zakresu lub grupowania według zapytań typu max, min, count
  • W przypadku tego typu indeksu wyszukiwanie może przejść bezpośrednio do określonego punktu w danych, dzięki czemu można kontynuować czytanie z tego miejsca.
  • Metoda indeksu klastrowego wykorzystuje mechanizm lokalizacji do lokalizowania pozycji indeksu na początku zakresu.
  • Jest to skuteczna metoda wyszukiwania zakresów, 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 w szybkim pobieraniu 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 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 wstawek w kolejności niesekwencyjnej
  • Indeks klastrowy tworzy wiele stałych podziałów stron, które obejmują zarówno strony danych, jak i strony indeksowe.
  • Dodatkowa praca dla SQL w zakresie wstawiania, aktualizacji i usuwania.
  • Indeks klastrowy wymaga więcej czasu na aktualizację rekordów, gdy zmieniane są pola w indeksie klastrowym.
  • Węzły liści przeważnie zawierają strony danych w indeksie klastrowym.

Wady indeksu nieklastrowego

Oto wady / wady korzystania z indeksu nieklastrowego:

  • Indeks nieklastrowy ułatwia przechowywanie danych w porządku logicznym, ale nie pozwala na fizyczne sortowanie wierszy danych.
  • Proces wyszukiwania w indeksie nieklastrowym staje się kosztowny.
  • Za każdym razem, gdy klucz klastrowania jest aktualizowany, wymagana jest odpowiednia aktualizacja indeksu nieklastrowego, ponieważ przechowuje on klucz klastrowania.