Sobes.tech
Junior — Middle

Czy możesz wyjaśnić, czym jest indeks hash i jaką rolę odgrywa w optymalizacji wyszukiwania danych?

sobes.tech AI

Odpowiedź od AI

Indeks haszowy to struktura danych używana do szybkiego wyszukiwania rekordów w bazie danych po kluczu. Opiera się na funkcji haszującej, która zamienia wartość klucza na indeks (hash), pod którym można szybko znaleźć potrzebny rekord.

Rola indeksu haszowego w optymalizacji wyszukiwania:

  • Pozwala na wykonywanie operacji wyszukiwania, wstawiania i usuwania w średnim czasie stałym (O(1)), co jest znacznie szybsze niż przeszukiwanie sekwencyjne.
  • Jest szczególnie skuteczny przy dokładnym wyszukiwaniu po kluczu, ale nie nadaje się do zapytań zakresowych (np. wyszukiwanie wszystkich wartości w zakresie).

Przykład: jeśli masz tabelę użytkowników z unikalnym identyfikatorem, indeks haszowy na tym identyfikatorze pozwoli szybko znaleźć użytkownika bez przeszukiwania wszystkich rekordów.

W Go można to przedstawić jako prostą implementację indeksu haszowego za pomocą wbudowanej mapy:

// Przykład prostego indeksu haszowego
użytkownicy := make(map[int]string) // klucz - ID użytkownika, wartość - imię

// Dodanie
użytkownicy[101] = "Ivan"

// Wyszukiwanie
nazwa, istnieje := użytkownicy[101]
if istnieje {
    fmt.Println("Znaleziono użytkownika:", nazwa)
}