Junior — Middle
Kas saaksite selgitada, mis on hash-indeks ja millist rolli see mängib andmete otsingu optimeerimisel?
sobes.tech AI
Vastus AI-lt
Hash indeks on andmestruktuur, mida kasutatakse kirje kiireks otsimiseks andmebaasis võtme alusel. See põhineb hash-funktsioonil, mis teisendab võtme väärtuse indeksiks (hash), mille kaudu saab kiiresti leida vajaliku kirje.
Hash indeksi roll otsingutõhususe parandamisel:
- võimaldab teha otsingu-, sisestus- ja kustutustegevusi keskmiselt konstantse aja jooksul (O(1)), mis on palju kiirem kui järjestikune otsing.
- on eriti tõhus täpseks otsinguks võtme järgi, kuid mitte sobiv vahemiku päringuteks (näiteks otsida kõiki väärtusi vahemikus).
Näide: kui teil on kasutajate tabel unikaalse identifikaatoriga, võimaldab hash indeks selle identifikaatori järgi kiiresti leida kasutaja, ilma kõiki kirjeid läbi vaatamata.
Go keeles saab lihtsa hash indeksi rakenduse esitada sisseehitatud kaardiga:
// Näide lihtsast hash indeksist
kasutajad := make(map[int]string) // võti - kasutaja ID, väärtus - nimi
// Lisamine
kasutajad[101] = "Ivan"
// Otsing
nimi, eksisteerib := kasutajad[101]
if eksisteerib {
fmt.Println("Kasutaja leitud:", nimi)
}