Christian Kruse: Effizienz-Vergleich MySQL-Eintrag vs. Datei-Eintrag

Beitrag lesen

Hallo Tom,

[...]entscheiden, wie ich suche. Ob binär, ob per Hash-Index,
das bleibt völlig mir überlassen.

Sei bitte so lieb und beseitige für mich ein für alle Mal die
Verständnisschwierigkeit: Was ist ein Hash-Index oder auch
Hash-Algorithmus? Ich kanns mir einfach nicht merken.

Mit Hashing wird eine Methode zum berechnen einer Prüfsumme
bezeichnet. Es wird in diesem Fall aus einem Eingabe-Wert eine
möglichst eindeutige Zahl erstellt. Diese Zahl wird dann benutzt,
um Werte in einer Tabelle abzuspeichern. Der Aufwand, diese Zahl
zu generieren, ist im Allgemeinen um ein vielfaches kleiner als
eine Suchmethode, da einfach viel, viel weniger Daten bearbeitet
werden müssen: habe ich eine Datenmenge von 10k Daten, so müssen bei
binären Such-Algorithmen immer noch max. 14 Vergleiche gemacht
werden und Einfüge-Operationen sind sehr aufwendig. Bei
Hashing-Algorithmen dagegen ist der Aufwand (linear) abhängig von der
Länge des Daten-Schlüssels. Benutzt man Schlüssel von 5 Zeichen, so
müssen 5 Operationen gemacht werden, um das Datum aus der Tabelle
zu holen oder es in die Tabelle hineinzustecken -- (theoretisch)
unabhängig von der Datenmenge. Die Grenze dieses Systems ist ein
Problem der Eindeutigkeit: bei einer unbegrenzten Eingabemenge
haben wir einen begrenzten Abbildungsraum, deshalb können mehrere
Schlüssel denselben Index ergeben. Trotz allem ist diese
Zugriffs-Methode für Key-Value-Datenformate im Mittel ein ganzes
Stück schneller als "herkömmliche" Such- und Sortier-Algorithmen.

Grüße,
 CK

--
Wenn auf Erden alle das Schoene als schoen erkennen, so ist dadurch schon das Haessliche bestimmt.