Sqlite und Kompression

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Ich würde gerne die verwendete Datenbank verkleinern. Mein jetziger Ansatz läuft darauf hinaus, dass ich die Datenbank in einem temp. Verzeichnis entpacke, darauf arbeite und wieder via gzip zurückschreibe. Gibts da eine elegantere Lösung?
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
Sirius3
User
Beiträge: 17752
Registriert: Sonntag 21. Oktober 2012, 17:20

Datenbanken brauchen wahlfreien Zugriff, gzip aber ist ein Stream-Format. Das passt irgendwie nicht zusammen.
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Für diejenigien, die es interessiert, meine Lösung:
Ich betreibe sqlite im In-Memory Modus und exportiere meinen Dump mit gzip.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
lunar

Deine Datenbank ist so klein, dass sie in den knapp bemessenen Arbeitsspeicher passt, doch so groß, dass Du sie auf dem reichlich vorhandenen Festplattenspeicher komprimieren möchtest?! Was sind denn das für merkwürdige Rahmenbedingungen?

Dir muss auch klar sein, dass Du die sich eher geringe Verringerung des Speicherbedarfs mit möglicherweise deutlichen Leistungseinbußen erkaufst... u.a. gehen Die so sämtliche Indizes verloren.
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Das bezweifle ich aber stark. Zum einem sollte das Einlesen der Datensätze effizienter sein, zum anderen dürfte der In-Memory Ansatz deutlich mehr Leistung bringen.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
BlackJack

@darktrym: Wenn man sich wegen fehlender Indizes quadratische Laufzeiten einhandelt ist das eigentlich völlig egal wie schnell auf die Datensätze zugegriffen werden kann.
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Steht das irgendwo?
Ich kann dazu keine Aussagen finden die das bestätigen, dass sich In-Memory deutlich vom Plattenbetrieb unterscheiden würden.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
lunar

Dann hast du wahrscheinlich gar keine Indizes, insofern ist das dann auch egal. Deine Datenbank ist dann so oder so verhältnismäßig langsam.

Mithin kann sie auch nicht viele Datensätze enthalten, was mir die Kompression noch unverständlicher erscheinen lässt.
Antworten