SQLite insert-Leistung
Muss ich schreiben, einzelne Zeilen einer Datei auf einem Datei-server. Ich überlege Nutzung von SQLite, um sicherzustellen, dass das schreiben von der Linie erfolgreich war und nicht nur teilweise abgeschlossen. Jedoch, als insert-Leistung ist wirklich wichtig. Meine Frage ist, was ist der genaue Prozess (wie Lesen, schreiben, Lesen und so weiter), die SQLite durchläuft, wenn es fügt eine Zeile zu einer Tabelle. Die Tabelle keine Indizes, noch primary keys, Einschränkungen oder sonst etwas.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist das häufigste Engpass in meiner Erfahrung:
http://www.sqlite.org/faq.html#q19
Außer, dass SQLite ist wirklich schnell. 🙂
Sollten Sie Transaktionen verwenden und damit versuchen zu vermeiden
fsync()
-ing auf jedenINSERT
. Werfen Sie einen Blick hier für einige benchmarks.Auch sicher sein, um richtig legen Sie die zwei wichtigen
pragmas
:NORMAL
)WAL
)PRAGMA synchronous = 0
können Sie erklären im Detail, was passiert, wenn Sie eine Anweisung auszuführen: http://www.sqlite.org/lang_explain.html