有没有人知道缩小/压缩db4o数据库的方法?
发布于 2010-07-13 17:47:54
你说的紧凑/收缩是什么意思?使现有数据库变得更小?或者你想压缩数据库?
其中一个角色是defragmentation。这释放了数据库中未使用的空间。当您删除对象时,数据库不会收缩。相反,该空间被标记为可供新对象使用。然而,随着数据库操作的超时,文件变得碎片化。因此,碎片整理会恢复数据库中未使用的空间。
当您存储大量字符串时,您应该考虑使用UTF8 encoding而不是默认的完整unicode。这节省了大量的空间,因为现在一个字符只使用一个字节。
EmbeddedConfiguration config = Db4oEmbedded.newConfiguration();
config.common().stringEncoding(StringEncodings.utf8());
ObjectContainer database = Db4oEmbedded.openFile(config,"database.db4o");请注意,您不能更改现有数据库的此设置!您需要对数据库进行碎片整理才能更改字符串编码。
要压缩数据库,可以使用压缩storage-implementation。然而,我不知道有什么可用的实现可以做到这一点。
https://stackoverflow.com/questions/3235412
复制相似问题