Our recent discussion of compression made me curious so I did some
analysis of pickle sizes in one of our large databases. This is for a
content management system. The database is packed weekly. It doesn't
include media, which are in blobs.
There were ~19 million transaction in the database and around 130
million data records. About 60% of the size was taken up by BTrees.
Compressing pickles using zlib with default compression reduced the
pickle sizes by ~58%. The average uncompressed record size was 1163
bytes. The average compressed size was ~493 bytes.
This is probably enough of a savings to make compression interesting.
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org