Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: Webserver macht's nicht mehr lange was kann ich verbessern

  Alt 13. Jun 2020, 16:29
Ein paar grundsätzliche Überlegungen:

SQLite ist mit der Prämisse "kleiner Fußabdruck", viele Plattformen, .. erschaffen worden, es ist nicht bekannt für besondere Performance.
SQLite ist dabei vorwiegend für 1 Benutzerbetrieb (keine Mehrfachzugriffe) konzipiert, was je nach eingesetzten Verfahren auf einem Webserver sogar gegeben sein kann (wenn kein Multithreading genutzt wird).
SQLite kann für den jeweiligen Einsatzzweck bei Bedarf mit anderen Grundeinstellungen kompiliert werden, was die Performance verbessern kann.

Größere RDBMS sind natürlich (auch) auf Performance ausgelegt, gerade im Mehrbenutzerbetrieb, dafür sind sie gemacht.
Selbst eine kostenlos Opensource Datenbank bietet eine Menge Features und erfüllt viele teilweise widersprüchliche Anforderungen, dazu gehört bspw. der konkurrierende Schreibzugriff und die Wahrung der (definierten) Datenkonsistenz. Gewisse Funktionalität wird dabei sogar garantiert! Weshalb Banken bspw. lieber RDBMS verwenden, als einfach in Dateien zu schreiben oder noSQL Produkte zu verwenden.
Das alles hat seinen Preis, selbst bei Kleinsystemen wie SQLite.
Ein System, das viele Daten in eine "Datenbank" schreibt, dabei Transaktionen überwacht, Dateneingabefehler prüft, falsche Eingaben konsistent wieder entfernt, 100e Nutzer gleichzeitig bedient, braucht Leistung, Speicherplatz und Rechenzeit.

Es ist sehr leicht vorstellbar, dass das bloße Schreiben in eine Datei, das "Logging", -auch durch mehrere Prozesse- dagegen simpel und flott ist. Ist es das in der Praxis nicht, also z.B. langsamer als das Schreiben in eine DB, dann ist es schlecht implementiert.

Mit welchen Funktionen des Webservers man also eine DB belegt und welche über bloßes Logging erreichbar sind, kann und sollte man gut abwägen. Sämtliche Protokollierungsfunktionen sind bspw. nicht der selektiven Änderung oder Löschung im Mehrbenutzerbetrieb unterworfen, entsprechend wird keine DB benötigt.

Datenschutz muss natürlich gewährleistet sein, dieser ist u.U. in einer zugriffsgeschützten DB leichter zu erzielen, als mit Log-Dateien, die jeder Administrator ohne weiteres abrufen kann. Es hängt sehr viel vom Einsatzzweck ab.
Gruß, Jo
  Mit Zitat antworten Zitat