Nie zu reich oder zu dünn: SQLite auf 80 % komprimieren

Wir sind große Fans der Verwendung von SQLite für alles, sogar von moderater Komplexität, wo Sie sonst eine Datei verwenden würden. Die Vorteile sind vielfältig, aber manchmal möchten Sie sich auf die Dateispeicherung verlassen. [Phiresky] hat darauf eine großartige Antwort: Die sqlite-zstd-Erweiterung bietet eine transparente Komprimierung auf Zeilenebene für SQLite.

Natürlich gibt es noch andere Optionen, aber wie im Artikel erwähnt, hat jede von ihnen ihre Nachteile. Indem Sie jedoch jede Zeile eines Arrays komprimieren, können Sie den wahlfreien Zugriff ohne einige der Nachteile anderer Methoden beibehalten.

Eine komprimierte Tabelle hat eine unkomprimierte Ansicht und eine zugrunde liegende komprimierte Tabelle. Das Komprimierungswörterbuch wird für jede Tabelle geladen und zwischengespeichert, um die Leistung zu verbessern. Aus Sicht der Anwendung ist die unkomprimierte Ansicht nur eine normale Tabelle und Sie sollten den Code nicht ändern müssen.

Sie können auswählen, wie die Komprimierung die Daten gruppiert, was die Leistung verbessern kann. Anstatt beispielsweise eine feste Anzahl von Zeilen zu gruppieren, können Sie Gruppen von Datensätzen basierend auf Datumsangaben komprimieren oder sogar nur ein einzelnes Wörterbuch reparieren, was für Tabellen nützlich sein kann, die sich nie ändern.

Apropos Leistung, die Dekomprimierung erfolgt spontan, aber die Komprimierung und Wörterbucherstellung erfolgen im Hintergrund, wenn die Datenbank im Leerlauf ist. Benchmarks zeigen natürlich einen Leistungsabfall, aber das ist immer noch der Fall: Sie tauschen Geschwindigkeit gegen Platz. Andererseits ist es für den wahlfreien Zugriff tatsächlich schneller, komprimierte Tabellen zu verwenden, da weniger Daten gelesen werden müssen. Zufällige Aktualisierungen waren jedoch langsamer, obwohl zu diesem Zeitpunkt keine Komprimierung stattfand.

Wenn Sie schnell mit der Verwendung von SQLite beginnen möchten, gibt es dafür ein Linux Fu. Sie können sogar die Versionierung mit einem Git-ähnlichen System verwenden, ein weiterer Vorteil gegenüber herkömmlichen Dateien.

Nie zu reich oder zu dünn: SQLite auf 80 % komprimieren

Wir sind große Fans der Verwendung von SQLite für alles, sogar von moderater Komplexität, wo Sie sonst eine Datei verwenden würden. Die Vorteile sind vielfältig, aber manchmal möchten Sie sich auf die Dateispeicherung verlassen. [Phiresky] hat darauf eine großartige Antwort: Die sqlite-zstd-Erweiterung bietet eine transparente Komprimierung auf Zeilenebene für SQLite.

Natürlich gibt es noch andere Optionen, aber wie im Artikel erwähnt, hat jede von ihnen ihre Nachteile. Indem Sie jedoch jede Zeile eines Arrays komprimieren, können Sie den wahlfreien Zugriff ohne einige der Nachteile anderer Methoden beibehalten.

Eine komprimierte Tabelle hat eine unkomprimierte Ansicht und eine zugrunde liegende komprimierte Tabelle. Das Komprimierungswörterbuch wird für jede Tabelle geladen und zwischengespeichert, um die Leistung zu verbessern. Aus Sicht der Anwendung ist die unkomprimierte Ansicht nur eine normale Tabelle und Sie sollten den Code nicht ändern müssen.

Sie können auswählen, wie die Komprimierung die Daten gruppiert, was die Leistung verbessern kann. Anstatt beispielsweise eine feste Anzahl von Zeilen zu gruppieren, können Sie Gruppen von Datensätzen basierend auf Datumsangaben komprimieren oder sogar nur ein einzelnes Wörterbuch reparieren, was für Tabellen nützlich sein kann, die sich nie ändern.

Apropos Leistung, die Dekomprimierung erfolgt spontan, aber die Komprimierung und Wörterbucherstellung erfolgen im Hintergrund, wenn die Datenbank im Leerlauf ist. Benchmarks zeigen natürlich einen Leistungsabfall, aber das ist immer noch der Fall: Sie tauschen Geschwindigkeit gegen Platz. Andererseits ist es für den wahlfreien Zugriff tatsächlich schneller, komprimierte Tabellen zu verwenden, da weniger Daten gelesen werden müssen. Zufällige Aktualisierungen waren jedoch langsamer, obwohl zu diesem Zeitpunkt keine Komprimierung stattfand.

Wenn Sie schnell mit der Verwendung von SQLite beginnen möchten, gibt es dafür ein Linux Fu. Sie können sogar die Versionierung mit einem Git-ähnlichen System verwenden, ein weiterer Vorteil gegenüber herkömmlichen Dateien.

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow