Viele Webframeworks wie Flask oder Django verwenden SQLite als Standarddatenbank. SQLite ist überzeugend, weil es in Python enthalten ist und der administrative Aufwand ziemlich gering ist.
Die meisten öffentlichen Produktionsstätten mit hohem Datenaufkommen verwenden jedoch eine umfangreichere Datenbank: mySQL, Oracle oder postgresql.
Die Fragen :
Annehmen:
- Der Datenverkehr auf der Website ist mäßig und es wird gleichzeitig Lese- / Schreibzugriff auf die Datenbank gewährt
- Wir werden SQLAlchemy mit SQLite-Schreibsperren verwenden (obwohl dieser Kommentar mich etwas nervös macht)
- Die Datenbank wird möglicherweise 60.000 Datensätze enthalten
- Datenstrukturen erfordern keine erweiterten Funktionen in schwereren Datenbanken
Gibt es jemals ein überzeugendes Argument gegen die SQLite- Parallelität für Websites, die als interne Tools für Unternehmen mit mäßigem Datenverkehr dienen? Wenn ja, unter welchen Bedingungen treten bei SQLite Parallelitätsprobleme auf?
Ich suche nach bekannten spezifischen Ursachen, anstatt nach allgemeiner Angst / unbegründetem Fingerzeigen.
sql
frameworks
scalability
web-framework
sqlite
Mike Pennington
quelle
quelle
Antworten:
Ich empfehle, die offizielle Antwort auf Ihre Frage " Geeignete Verwendungen für SQLite" zu lesen . Insbesondere warnt "Situationen, in denen ein anderes RDBMS möglicherweise besser funktioniert", dass SQLite das gleichzeitige Schreiben nicht unterstützt:
Aus der Perspektive der Angemessenheit neige ich dazu, SQLite als ein sehr ausgefeiltes Dateiformat anzusehen, das SQL-Abfragen unterstützt. Ich würde SQLite eher vermeiden, wenn ich meine Datenbank von meiner Webanwendung trennen möchte, da sie nicht für diesen Fall optimiert ist. Kurz gesagt, SQLite ist für die Verwendung in einigen Szenarien nicht ausreichend skalierbar. Daher ist es für Benutzer von Websites, die hoffen, dass sie irgendwann populär werden, möglicherweise besser, mit etwas Skalierbarem zu beginnen, als mit SQLite zu arbeiten und später zu wechseln.
Trotzdem ist SQLite für die meisten internen Websites in Ordnung. In der Regel erfordern interne Websites nicht dasselbe Maß an Parallelität und Skalierbarkeit.
quelle
Wenn ich meinen IT-Direktor aufsetze, sehe ich hier ein paar No-Gos:
Aus Entwicklersicht ist es meiner Meinung nach wichtig zu wissen, warum SqlLite die Standardeinstellung ist - weil es einfach ist und sich gut als Demo eignet. Wenn Sie eine Plattform an neue Entwickler "verkaufen", ist es entscheidend, dass Sie eine funktionierende Web-App mit minimalem Aufwand starten können. Das Aufstehen und die ordnungsgemäße Konfiguration eines Datenbankservers wäre ein massiver Stolperstein, der vermieden werden muss.
quelle