Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Was macht Datenbanken so schnell?

  Alt 4. Jun 2010, 08:04
Zitat von Matze:
im Endeffekt sind Datenbanken doch nichts anderes als Dateien, die auf Festplatten liegen. Dennoch sind Datenbanken deutlich schneller, als wenn Schreib- und Lesezugriffe manuell über Dateizugriffe erfolgen würden.
Wobei es da auch massive Unterschiede gibt. Natürlich haben Datenbanken bei sehr großen Datenmengen noch mehr Vorteile, aber oft sind Geschwindigkeitsprobleme bei Eigenentwicklungen auch schlicht auf schlechte Optimierung zurückzuführen.

Mit MMFs und einer cleveren Dateistruktur kann man auch ohne echte Datenbanken eine gute Geschwindigkeit hinbekommen. Das lohnt sich für größere Datenmengen einfach kaum um Vergleich zu DBs, da der Aufwand viel zu groß wird, aber eine JIT-Filterung direkt bei der Eingabe in ein Edit habe ich auch bei mehreren tausend Datensätzen in unter 10 Millisekunden hinbekommen inklusive Anzeige als Tabelle und inkl. Farbhighlighting.

Das sind natürlich ganz andere Datenmengen als bei professioneller Verwendung von DBs auftreten, so dass man da noch ganz andere Probleme bekäme, wenn man das selbst machen wollte. Aber gerade bei kleinen Hobbytools sehe ich schon öfter, dass einfach nicht gut optimiert wird und dadurch dann die Geschwindigkeit so schlecht ist. Denn bei kleineren Datenmengen sind echte DBs nicht unbedingt schneller als eine gut optimierte Eigenlösung. (Aber einfacher. )

Und was den Dateizugriff an sich angeht:
Mit meinem Registryeditor lese ich zeichenweise die INI-artigen Registrydateien ein. Inklusive Einlesen und Anzeige komme ich da etwa auf die halbe Maximalgeschwindigkeit der Festplatte, bei mir z.B. mit SSD auf 90 MiB/s, so dass z.B. eine 350 MiB Datei in 5 Sekunden komplett analysiert und angezeigt ist, mit einer echten Festplatte in ca. 9-15 Sekunden (je nach Rechner).
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat