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)
}