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