在使用文件哈希数据库的Kyoto Cabinet数据库中,如何避免文件大小增加?

我正在使用以下打开:
db.open("db.kch#tune_defrag=10000", DB.OWRITER | DB.OCREATE)
我正在推卸元素。在执行结束时,数据库为“空”,count()函数返回0,因为我删除了所有元素。重复测试时为什么文件大小总是增加?是否可以运行类似“垃圾收集器”的东西来清理已删除的寄存器?如果我执行相同的测试100次,我有一个500 MB大小的数据库,即使我只有2条记录。 我试图把“tune_defrag = 10000”但我觉得它没有用。 Obs。:唯一的寄存器小于1K,我不明白为什么寄存器占用磁盘空间太大。 谢谢你的帮助     
已邀请:
试试这个:
db.kch#dfunit=8
这意味着KC每检测到8个碎片就运行碎片整理,而Mikio实际推荐8个碎片。 此处列出了可用选项,但它可能会使用一些润色。 http://fallabs.com/kyotocabinet/command.html     
运行: kchashmgr defrag path_to_kcabinet_file 是我做的是让db文件“调整大小”。我没有找到api访问这个,这就是为什么我用shell命令使用kchashmgr实用程序(显然这可以从程序内部调用)。     
我没有使用过这个特定的数据库,但在其他一些数据库中,解决此问题的方法是将数据库复制到新数据库中,然后删除旧数据库。确保它复制好后:)。 我已经将这个过程实现到生产系统中,只要它编码真的很好,它应该工作。     
从粗略的浏览到kyoto文档,似乎没有任何方法可以调整大小或以其他方式清理已删除记录的数据库......或者真正以任何形式或形式管理它。 该项目看起来距离“生产就绪”还有很长的路要走。如果你真的想要实现它,我建议联系项目所有者(http://fallabs.com/),看看他们是否有任何需要的实用功能的计划。 否则,我建议转移到另一个更成熟的nosql样式数据库。     

要回复问题请先登录注册