db4o:压缩/收缩

时间:2010-07-13 08:33:28

标签: database db4o

有没有人知道缩小/压缩db4o数据库的方法?

1 个答案:

答案 0 :(得分:3)

压缩/收缩是什么意思?使现有数据库更小?或者您想压缩数据库吗?

其中一个角色是defragmentation。这释放了数据库中未使用的空间。删除对象时,数据库不会缩小。相反,空间被标记为新对象的空闲。然而,随着数据库的操纵加班,文件变得支离破碎。因此,碎片整理会带回数据库中未使用的空间。

当您存储大量字符串时,应考虑使用UTF8 encoding而不是默认的完整unicode。这节省了大量空间,因为现在一个角色只使用一个字节。

EmbeddedConfiguration config = Db4oEmbedded.newConfiguration();
config.common().stringEncoding(StringEncodings.utf8());
ObjectContainer database = Db4oEmbedded.openFile(config,"database.db4o");

请注意,您无法更改现有数据库的此设置!您需要对数据库进行碎片整理以更改字符串编码。

要压缩数据库,您可以使用压缩storage-implementation。但是,我不知道有任何可用的实现方式。