Ich habe eine Anwendung auf Embedded Linux ausgeführt. Ich habe eine vordefinierte DB mit einigen Tabellen, wo jeder eine Menge Zeilen (Tausende) und 52 Spalten hat. Ich baute die DB voraus, weil ich besorgt bin, dass ich, wenn ich 'INSERT' zur Laufzeit mache, eine Datenträgerfragmentierung machen werde, also stattdessen eine DB mit viel Müll 'INSERT' und zur Laufzeit erstellen Ich benutze 'UPDATE's.SQLite WAL Leistungsverbesserung
Ich schreibe alle 3 Sekunden eine Menge Daten in die Datenbank. Und damit der Schreibvorgang schnell geht, benutze ich den WAL-Modus in SQLite. Obwohl ich ein Problem der Leistung habe. Es scheint, dass, wann immer ein Checkpoint auftritt, es zu lange dauert und der Prozessor es nicht in weniger als 3 Sekunden tun kann. Um dies zu verbessern, habe ich einen Thread, der nach wie 10 Schreib Anrufe, er eine Nachricht-Warteschlange von dem Haupt-Thread empfängt und als Checkpointing.
Jetzt scheint es, als wäre die Situation besser, aber die WAL-Datei wird immer größer und größer ... Wie kann ich hier arbeiten?
Beachten Sie, dass dies die Zuweisung von Dateibereich für die Datenbankdatei betrifft. Von dem, was ich Zuweisungen an die WAL-Datei verstehen ehrt nicht die Blockgröße. –