繁体   English   中英

为什么Derby数据库占用这么多空间?

[英]Why does a Derby database take up so much space?

我是数据库新手,我喜欢从关系数据库(例如Derby数据库)中获取数据有多么容易。 我不喜欢一个人要占用多少数据。 我已经建立了一个包含两个表的数据库,向这些表总共写入了130条记录(每个表有6列),并且整个关系数据库都保存在系统目录中,作为一个文件夹,总共可以容纳1914014个字节! (假设我正确地执行了算术运算……。)到底是什么引起了如此巨大的内存请求? //我还注意到, log文件夹中有一个log1.dat文件,该文件恰好占用1MB的数据。 我通过Notepad ++查看了此文件,发现它主要是NULL字符。 这是怎么回事?

Derby需要跟踪数据库数据,重做日志和事务,以便数据库处于一致状态,甚至可以从PC崩溃中恢复。 此外,他还创建了大多数具有固定大小(例如1MB)的文件,以确保以后不需要增加文件大小(性能问题并且不会将文件分割成很多)。

在运行时或停止时,Derby将清除其中一些文件或将它们重新组合并释放空间。

因此,总体而言,空间和文件是您使用数据库时所要权衡的。

也许您可以通过一些Derby配置更改某些这种行为(我在doc :()中找不到适合的任何一种)。

在2011年进行最后一次检查时,一个空的Derby数据库大约需要770 K的磁盘空间: http : //apache-database.10148.n7.nabble.com/Database-size-larger-than-expected-td104630.html

log1.dat文件是您的事务日志,它记录数据库更改,以便在发生崩溃(或程序调用ROLLBACK)时可以恢复数据库。

请注意,log1.dat是磁盘空间 ,而不是内存

如果您想了解Derby交易日志的基础知识,请从这里开始: http : //db.apache.org/derby/papers/recovery.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM