你好 LanX!,
Wir reden aneinander vorbei, anders gefragt:
Stell dir vor wir lassen die Hashes der nten Stufe weg (die
diesbezüglichen Schlüssel bleiben z.B. in der DB), und wir bauen
nur einen "perfekten" Hash der 2^16 häufigsten Suchbegriffe auf (z.B.
mit dem Tool das Christoph erwähnte). Ist der Suchbegriff nicht im
Hash wird er dann klassisch über binärbaum in der DB gesucht.Wäre es dann von der Gesamtperformance nicht besser, wenn in über 95%
der Fälle nur auf diesen Hash zugegriffen werden müßte?
Das war ja gar nicht die Frage, die sich entwickelt hat ;-) Die Frage,
die sich entwickelt hat, war, ob Hashes dazu geeignet sind, sehr grosse
Datenmengen zu speichern.
Natürlich hast du unter deinen Annahmen recht. Wenn das Vokabular
ähnlich stark wachsen würde wie die Zahl der Postings würde mein
Ansatz keinen Sinn machen. Dieses tut es aber IMHO nicht, weil
keine Randomfunktionen posten sondern Deutschsprecher.²
Du vergisst, dass hier viel Quelltext gepostet wird, dass hier jeden Tag
sich Leute verschreiben, etc, pp. -- ich halte die Wachstumsrate “neuer
Woerter” fuer groesser, ehrlich gesagt.
weitere Diskussion duerfte nicht viel bringen. «Du glaubst mir ja eh
nicht!»doch ich weiß zwar ad hoc nicht wieso der Exponent des Schlüssels in
2er Schritten wachsen muß, außer das Chips so organisiert sind, aber
ich glaube dir unter deinen Annahmen.
Er muss nicht in Zweier-Potenzen wachsen, aber es ist sinnvoll, weil dann
die Genauigkeit des Schluessels sehr einfach eingestellt werden
kann (Grosser-Key & (1<<Genauigkeit)).
Wieso brauche ich für 256 Einträge 32-Bit Schlüssel???
Der hoeheren Genauigkeit wegen. Die Genauigkeit muss doch hoeher
sein als in der ersten Stufe.Allerdings wieso könnte ich - theoretisch - nicht mit diesem
Perfekte-Hashfkt-Bastel-Tool nicht einen neuen Hash für 256
Einträge basteln??? (ausser das der overhead für die Funktion
eventuell größer ist als die Tabelle?)
- Sind es ja keine 256 Werte, 2) duerfte es dir schwerfallen, es sei
denn, du kannst alle Kollisionen vorhersagen.
Ehrlich gesagt ich hätte sowieso ein Problem damit für 256 Werte
einen Hash zu nehmen, deswegen sagte ich "geeignet Datenstruktur".
Diese geeignete Datenstruktur kann auch teuer sein, weil sie selten
gebraucht wird.
Das sagst du ;-) Ich denke etwas anderes. Wie gesagt, ich wette, ich habe allein in diesem Posting schon midnestens einen Recktschriebfaehlah.
再见,
CK