Seite 1 von 1

Sqlite und Kompression

Verfasst: Dienstag 3. September 2013, 20:57
von darktrym
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?

Re: Sqlite und Kompression

Verfasst: Dienstag 3. September 2013, 21:55
von Sirius3
Datenbanken brauchen wahlfreien Zugriff, gzip aber ist ein Stream-Format. Das passt irgendwie nicht zusammen.

Re: Sqlite und Kompression

Verfasst: Mittwoch 4. September 2013, 09:36
von darktrym
Für diejenigien, die es interessiert, meine Lösung:
Ich betreibe sqlite im In-Memory Modus und exportiere meinen Dump mit gzip.

Re: Sqlite und Kompression

Verfasst: Mittwoch 4. September 2013, 11:26
von 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.

Re: Sqlite und Kompression

Verfasst: Mittwoch 4. September 2013, 12:00
von darktrym
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.

Re: Sqlite und Kompression

Verfasst: Mittwoch 4. September 2013, 12:03
von 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.

Re: Sqlite und Kompression

Verfasst: Mittwoch 4. September 2013, 12:11
von darktrym
Steht das irgendwo?
Ich kann dazu keine Aussagen finden die das bestätigen, dass sich In-Memory deutlich vom Plattenbetrieb unterscheiden würden.

Re: Sqlite und Kompression

Verfasst: Mittwoch 4. September 2013, 13:12
von 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.