2012-11-20 15 views
20

Uczyłem się hashowania w DBMS (rozszerzalnym, liniowym) i indeksowaniu w DBMS (rzadkie, gęste, indeksy oparte na kluczach drugorzędnych itp.), Ale nie jestem w stanie zrozumieć, jaka jest różnica między Hashingiem a Indeksowaniem. Czy te dwie techniki są używane razem lub czy są używane? Jestem zdezorientowany, ponieważ wydaje się, że celem obu technik jest umożliwienie nam szybkiego pobierania danych, więc uważam, że albo powinno wystarczyć.Jaka jest różnica między hashowaniem a indeksowaniem?

Czy ktoś może wyjaśnić różnicę?

+4

hashowanie to jedna z metod indeksowania (lub typ _następu method_); drzewa (B-drzewa itp.) to kolejne. –

Odpowiedz

12

Co to jest indeksowanie?

Indeksowanie jest sposobem na sortowanie wielu rekordów na wielu polach. Utworzenie indeksu na polu w tabeli tworzy kolejną strukturę danych, która przechowuje wartość pola i wskaźnik do rekordu, do którego się odnosi. Ta struktura indeksu jest następnie sortowana, umożliwiając wykonanie na niej binarnych wyszukiwań.

Co to jest mieszanie?

Hashing to przekształcenie ciągu znaków w zwykle krótszą wartość o stałej długości lub klucz reprezentujący oryginalny ciąg znaków. Hashowanie służy do indeksowania i pobierania elementów w bazie danych, ponieważ szybciej jest znaleźć element za pomocą krótszego skrótu, niż znaleźć go przy użyciu wartości początkowej.

Myślę, że może to rozwiać wątpliwości.

+0

Jeśli masz nowe rekordy dodawane, sortowanie struktury indeksu okaże się drogie. Można również wspomnieć, że zamiast tego można użyć drzewa B + do uporządkowania danych, aby umożliwić szybki dostęp do klucza indeksującego. – adijo

10

Hash to rodzaj indeksu: można go użyć do zlokalizowania rekordu na podstawie klucza - ale nie zachowuje on żadnej kolejności rekordów. W oparciu o hash, nie można iterować do następnego lub poprzedniego elementu. To jednak, co robi indeks (w kontekście baz danych.)

2
  • Hashing nie gwarantujemy, że będą różne wartości hash do odrębnego adresu.
  • Kolizja jest tam w haszowaniu.
  • Hashing skutkuje przepełnieniem.
  • Nie ma potrzeby dostępu do struktury indeksu w celu zlokalizowania danych &, a następnie odczytania danych z pliku DB.
  • Istnieje polecenie do definiowania indeksowania, ale nie do haszowania.
+4

Myślę, że największą różnicą między hashowaniem a indeksowaniem, której brakuje Twojej i wielu innym, jest to, że * większość * schematów indeksowania jest odpowiednia do sortowania lub znajdowania "bliskich" dopasowań, podczas gdy mieszanie jest zasadniczo bezużyteczne dla niczego innego niż znajdowanie "dokładnego" mecze. – supercat

0

haszowanie to zaawansowana technika przeszukiwania.i.e duże dane są przekształcane w małe elementy danych i przechowywane w tabeli. Ale indeksowanie i wyszukiwanie binarne jest poddawane wyszukiwaniu w sposób liniowy. a także indeksowanie służy do tworzenia indeksu (klucza) do kombinacji wielu pól.

Powiązane problemy