Verwendung von SQLite als Produktionsdatenbank, schlechte Idee aber

8

Wir verwenden derzeit postgresql für unsere Produktionsdatenbank in Rails, großartige Datenbank, aber ich baue die neue Version unserer Anwendung um SQLite. In der Tat verwenden wir keine erweiterten Funktionen von Postgres wie Volltextsuche oder PL / SQL. In Bezug auf SQLite, ich liebe die Idee, die Datenbank mit nur einer Datei zu spielen, die einfache Integration in einen Server und in Rails, und die Leistung scheint wirklich gut - & gt; Benchmark

Der Traffic unserer Anwendung ist relativ hoch, wir haben ungefähr 1 200 000 Aufrufe / Tag. Also, wir lesen viel aus der Datenbank, aber wir schreiben ein paar.

Was denkst du darüber? Feedback von jemandem, der versucht oder versucht (wie wir), SQLite wie eine Produktionsdatenbank zu verwenden?

    
Hartator 23.05.2011, 12:46
quelle

3 Antworten

8

Wenn Sie viele Lesevorgänge und wenige Schreibvorgänge ausführen, kombinieren Sie SQLite mit einer Art In-Memory-Cache-Mechanismus ( Memcache oder redis sind wirklich gut dafür). Dies würde helfen, die Anzahl der Zugriffe (Lesevorgänge) auf die Datenbank zu minimieren. Dieser Ansatz hilft bei jeder Umgebung mit vielen Lesevorgängen und wenigen Schreibvorgängen und hilft, SQLite-Schwachstellen nicht zu treffen - in Ihrem speziellen Fall.

    
Manuel Salvadores 23.05.2011, 12:56
quelle
2

SQLite wurde für eingebettete Systeme entwickelt. Es funktioniert gut mit einem einzelnen Benutzer, aber behandelt nicht gleichzeitig Anfragen sehr gut. 1,2 Millionen Aufrufe pro Tag bedeutet wahrscheinlich, dass Sie viel von letzterem bekommen.

    
Denis de Bernardy 23.05.2011 13:14
quelle
1

Wenn Sie nur Lesevorgänge ausführen, kann es theoretisch schneller sein als ein Out-of-Process-Datenbankserver, da Sie keine Daten im Arbeitsspeicher oder in Netzwerkstreams serialisieren müssen. In der Praxis könnte ein RDBMS schneller sein. zum Beispiel MySQL hat ziemlich gute Query-Caching-Funktionen und für bestimmte Abfragen, die eine Verbesserung sein könnten, weil alle Ihre Rails-Prozess diesen Cache verwenden würden. Mit sqllite würden sie keinen Cache teilen.

    
Jeremy 23.05.2011 14:04
quelle