Hi Christian
Korrekt. Indizes koennen ja fuer Praefix-Zugriffe auch nicht
benutzt werden. ein 'LIKE "%blahr"' kann nicht ueber den
Index ausgewertet werden (zumindest wuesste ich nicht, wie
das gehen sollet).
Upsi, ich meinte natürlich Postfix-Zugriffe, Präfix-Zugriffe
sind ja eh... Naja, da hab ich ja eh schon abgekupfert von
Michael um das Problem zu umgehen.
Fuer *Suffix*-Zugriffe kommt es darauf an, was fuer eine
Aber du hast recht, ein Hashing-Index eignet sich aeusserst
schlecht fuer derartige Zugriffe. Ich glaub, ich war etwas
voreilig und haette besser sagen sollen, es *gibt* auch
Hashing-Indizes :)
Auch für Postfixzugriffe? Habs den ersten Satz nicht verstanden
und ich werde gelyncht wenn ich jetzt deine Links nachlese.
Der Zugriff ist schneller, ja. Eine schnelle Hash-Funktion
braucht 6xLength(key)+32 Zyklen um eine Hash-Sum auszurechen.
Der Lookup in der Tabelle braucht dann nochmal etwa sechs
Zyklen, wenn ich das richtig in Erinnerung habe (ins Register
holen, Addieren, Multiplizieren, ins Register holen). Dann
waeren wir bei 6xLength(key) + 38 Zyklen fuer einen
Hash-Lookup bei der Annahme, dass die Hash-Funktion perfekt
ist (was sie natuerlich bei endlicher Schluessellaenge nicht
sein kann).
Nützt nur nichts wenn das für Postfixsuchen nicht brauchbar ist.
Btw klappt deine Berechnung mit den Zyklen nicht da es sehr
verschieden ist, wie viele Zyklen ein Prozessor für die einzelnen
Befehle braucht und ob er die Daten wirklich in ein Register holt.
Je nach dem kann er das gar nicht da ein Register ein Wort (ursprüngliche
Definition) lang ist.
Weist du etwas gutes zu lesen zu Hashing-Funktionen?
[..]
Werd ich zuhause lesen, danke.
Gruss Daniela