database - db4o:压缩/收缩

标签 database db4o

有人知道缩小/压缩 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/

相关文章:

java - db4o 对象管理器企业版是免费的吗?哪里可以下载?它是一个独立的应用程序吗?

java - db4o(或任何其他 oodb)中的分层嵌套数据结构

database - Redis连接池与Lambda

mysql - 如何布局我的数据库?

c# - 用子类的实例替换 db4o 存储对象

java - 用于比较两个列表的所有对象的循环

java - 使用 python-javaobj 在纯 python 中实现 java 反序列化?

r - 如何在第一次看到特定观察后删除行

sql-server - 复合主键和对自然/代理键使用的影响

Python-PostgreSQL psycopg2 接口(interface) --> executemany