Jaka jest różnica między indeksem klastrowym a nieklastrowym

Spisu treści:

Anonim

ten główna różnica między indeksem klastrowym a nieklastrowanym jest to, że istnieje tylko jeden indeks klastrowy na tabelę, podczas gdy na tabelę przypada wiele indeksów nieklastrowych.

Po pierwsze, indeksowanie to technika łatwego i wydajnego pobierania rekordów z plików bazy danych. Przyspiesza wykonywanie zapytań dla aplikacji klienckich korzystających z bazy danych. Ponadto istnieją dwa rodzaje indeksów jako indeks klastrowy i nieklastrowy. Indeks klastrowy zmienia kolejność przechowywania danych na dysku. Jednak w indeksie nieklastrowym kolejność logiczna indeksu nie jest zgodna z kolejnością fizyczną danych przechowywanych na dysku.

Indeks klastrowy, indeks nieklastrowany

Co to jest indeks

Załóżmy tabelę, która przechowuje dane klienta. Ma trzy kolumny jako imię, nazwisko i numer kontaktowy. Jeśli w tabeli nie ma indeksów, dane zostaną wstawione do wolnych miejsc w pamięci bez określonej kolejności. Jeżeli użytkownik wymaga uzyskania konkretnego numeru telefonu klienta, konieczne jest wyszukanie danych od początku. Mimo że otrzymujemy dane, należy kontynuować do końca, ponieważ na końcu mogą być pasujące dane. W takich sytuacjach przydatne są indeksy.

Co to jest indeks klastrowy

Indeks klastrowy zmienia kolejność fizycznego przechowywania danych. Gdy dane w tabeli są w porządku fizycznym, DBMS tworzy strony indeksowe. Pomagają łatwo nawigować do wymaganych danych. Cała struktura z danymi tabeli podstawowej jest nazywana indeksem klastrowym. Proces kwerendy przechodzącej przez drzewo indeksów klastrowych do danych tabeli podstawowej jest nazywany wyszukiwaniem indeksu klastrowego. Istnieje jeden indeks klastrowy na tabelę, ponieważ niemożliwe jest fizyczne rozmieszczenie danych na dwa różne sposoby bez użycia oddzielnych struktur.

Co to jest indeks nieklastrowany

Indeks nieklastrowany nie sortuje danych fizycznych w tabeli. Indeks i tabela są przechowywane w różnych miejscach. Ponadto w tabeli znajdują się wskaźniki lub odniesienia do danych. Możliwe jest przechowywanie danych w dowolnej kolejności, ponieważ ta kolejność jest niezależna od danych tabeli podstawowej. W związku z tym może istnieć więcej niż jeden indeks nieklastrowany na tabelę. Dane w tabeli podstawowej znajdują się na stercie, podczas gdy odwołania są identyfikatorami wierszy.

Podczas wykonywania zapytania względem kolumny baza danych najpierw przechodzi do indeksu i szuka adresu odpowiedniego wiersza w tabeli. Następnie przechodzi do adresu wiersza i pobiera inne wartości kolumn. Dlatego indeksy nieklastrowane są wolniejsze niż indeksy klastrowane. Gdy w tabeli jest zdefiniowany unikalny klucz, automatycznie zostanie utworzony indeks nieklastrowy.

Różnica między indeksem klastrowym a nieklastrowym

Definicja

Indeks klastrowy to typ indeksu, w którym rekordy tabeli są fizycznie zmieniane w celu dopasowania do indeksu. Z drugiej strony indeks nieklastrowy to specjalny typ indeksu, w którym logiczna kolejność indeksu nie jest zgodna z fizyczną kolejnością przechowywanych wierszy na dysku. Te definicje wyjaśniają różnicę między indeksem klastrowanym i nieklastrowanym.

Liczba indeksów

Liczba indeksów na tabelę jest główną różnicą między indeksem klastrowym a nieklastrowym. Tabela może mieć jeden indeks klastrowy, ale wiele indeksów nieklastrowych.

Funkcjonalność

Indeks klastrowy nie przechowuje wskaźników do rzeczywistych danych. Jednak indeks nieklastrowany przechowuje zarówno wartość, jak i wskaźnik do rzeczywistego wiersza zawierającego dane. Jest to zatem kolejna różnica między indeksem klastrowym a nieklastrowym.

Kolejność przechowywania danych

Wymagane miejsce w pamięci

Ponadto indeks nieklastrowy wymaga więcej miejsca w pamięci niż indeks klastrowy.

Prędkość

Szybkość to kolejna różnica między indeksem klastrowym a nieklastrowanym. Indeksy nieklastrowane są wolniejsze niż indeksy klastrowe.

Wniosek

Istnieją dwa rodzaje indeksów jako indeks klastrowany i nieklastrowany. Różnica między indeksem klastrowym a nieklastrowym polega na tym, że na tabelę przypada tylko jeden indeks klastrowany, podczas gdy na tabelę przypada wiele indeksów nieklastrowych. W skrócie, indeks nieklastrowy jest wolniejszy i wymaga więcej miejsca niż indeks klastrowy.

Referencja:

1. Yadav, Durgaprasad. „Indeks na serwerze SQL”. LinkedIn SlideShare, 21.11.2015, dostępny tutaj.2. Rahamana, Mahabubur. „Wprowadzenie do indeksowania serwera SQL”. LinkedIn SlideShare, 23 maja 2015, dostępny tutaj.

Zdjęcie dzięki uprzejmości:

1. „Logo baz danych” Autor: Borjasotomayor w angielskich Wikibooks (CC BY-SA 3.0) przez Commons Wikimedia

Jaka jest różnica między indeksem klastrowym a nieklastrowym