Hallo,
2 Monate später
Auch ich wurde schon einige Male "gezwungen" alle Daten clientseitig zu laden so dass der Anwender in zig Millionen Datensätzen suchen kann...
Ich habe gerade mal mit einer In-Memory-Testumgebung in Form einer
TStringList() getestet.
Folgende Bedingungen:
Suchwort = 3 Zeichen
Suchstring pro Zeile = 70 Zeichen lang
Bei 3 Mio Datensätzen (= 27,3 MB
RAM) benötigt die Standardsuche mit
Pos() ca. 977ms.
Ich vermute, dass meine ausgesuchten Bedingungen nicht so gut sind wie deine, von daher wird wahrscheinlich diese Suche auf deine Ergebnismenge angewendet noch einiges schneller sein. Wenn du nur nach Zahlen suchst wird die Suche nochmals geschätzte 6-10x schneller sein.
Bei 1,2 Mio Datensätzen (= 13,4 MB
RAM) benötigt mein Test 391 ms. Wenn man die schon genannten Such-Bedingungen berücksichtigt (Timer-Event über 300ms beim Tastendruck und erst nach 3 Zeichen suchen lassen), scheint eine einfache In-Memory-Suche ausreichend, oder?