Hallo Stephan,
ich würde gerne wissen, ob bei einer großen Anzahl von indizierten Dateien die Suche durch die Dateien mit einem Skript schneller sein kann als die Abfrage eines SQL-Servers.
Generell wuerde ich mal sagen: Suchen in einer einzigen Datei (und sei sie noch so gross) ist bei heutigen EDV-Systemen, die aufgrund ihrer Unzulaenglichkeit zwischen Festplattenspeicher und Arbeitsspeicher unterscheiden muessen, schneller als Suchen ueber viele Dateien, die alle nacheinander geoeffnet, ausgelesen und wieder geschlossen werden muessen.
Ob die Daten in einer perfekt indexierten teuren Datenbank lagern oder in einer einfachen Textdatei mit Begrenzerzeichenkonventionen, haengt von der Groessenordnung ab.
Vor ein paar Jahren war es undenkbar, eine 1MB grosse Textdatei einfach komplett in den Arbeitsspeicher einzulesen. Heute ist das auf einen ordentlichen Server-Rechner auch bei Textdateien von 10 oder 20MB kein Thema mehr. Und in 10 oder 20MB gehen schon etliche mittlere Datenbanken rein.
Meine derzeitige Einschaetzung deshalb:
bis sagen wir mal ca. 10 MB alle Daten durch ein einfaches Organisationsprinzip ("komma-delimited" oder dergleichen) in eine grosse Textdatei packen. Bei groesseren Datenbestaenden eine richtige Datenbank mit Indexierung und Speicherverwaltung verwenden.
Aber niemals (oder nur bei sehr kleinen Datenbestaenden) durch eine Online-Abfrage, etwa durch CGI, die Suche ueber etliche (will meinen: hunderte oder gar tausende) Einzeldateien starten!
viele Gruesse
Stefan Muenz