Hi Christian,
Wie PostGreSQL doppelte Eintraege verwaltet, kann ich dir
leider nicht sagen. Ich koennte mir vorstellen, dass es in
jedem Hash-Element eine lin. Liste gibt.
hm ... kommt wohl darauf an, wie groß der Schlüsselraum im Vergleich zu den zu speichernden Werten ist. Wenn es möglich und sogar wahrscheinlich ist, daß viele Werte denselben Hashcode haben, dann kann eine lineare Liste langsam sein. Natürlich möchte man dann den Hash-Key gerne länger machen ... aber wird damit die entsprechende Speichertabelle nicht explosionsartig größer?
Ich könnte mir zumindest vorstellen, in bestimmten Fällen eine Hybrid-Technik einzusetzen, d. h. spätestens beim Erreichen der maximalen erwünschten Hash-Schlüssellänge die dann immer noch vorhandenen mehrdeutigen Werte nicht in Listen, sondern in sortierten Bäumen zu speichern (meinetwegen erst ab einer Mindest-Anzahl Einträge pro Hash-Key, dann müßte man nicht zwischendurch schlagartig die gesamte Tabelle anpassen, und wenn der Treiber schon schlau sein muß, dann kann er auch gleich dynamisch schlau sein).
Viele Grüße
Michael
T'Pol: I meant no insult.
V'Lar: Of course not. You're simply speaking your mind ... as you always have.