AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Softwareentwicklung im Allgemeinen Projektplanung und -Management Webserver macht's nicht mehr lange was kann ich verbessern
Thema durchsuchen
Ansicht
Themen-Optionen

Webserver macht's nicht mehr lange was kann ich verbessern

Ein Thema von Strict · begonnen am 12. Jun 2020 · letzter Beitrag vom 13. Jun 2020
Antwort Antwort
Strict

Registriert seit: 25. Mär 2020
47 Beiträge
 
#1

Webserver macht's nicht mehr lange was kann ich verbessern

  Alt 12. Jun 2020, 20:42
Seit Jahren nutze ich statt einer MySQL-Datenbank eine SQLite-Datei. Auch schreibe ich gewisse Daten wie IPs, Anzahl von Downloads und Seitenbesuche und sowas in dafür angelegte Textdateien. Das klappt gut, bis der mega-Ansturm kam. fopen, fwrite, fclose und das Schreiben in Textdateien allgemein scheint nicht dafür gemacht zu sein, wenn pro Sekunde mehrere Anfragen eintreffen.

Sind SQL-Datenbanken vor sowas geschützt? Wenn zu ein und demselben Zeitpunkt mehrere Schreibanfragen an eine SQL-Datenbank eingehen, wie geht die Datenbank damit um?
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#2

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

  Alt 12. Jun 2020, 22:48
Kurze Antwort: Ja, Datenbankserver wie MySQL (oder MariaDB, ist im Prinzip dasselbe) können das. Man muss meist auch nicht mal was dafür tun, in deinem banalen Anwendungsgebiet sowieso. Nur eins geht auch damit weiterhin nicht: Grundlos IPs speichern und gleichzeitig nicht gegen die übliche Rechtsauffassung verstoßen.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
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, 17: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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz