重复丢弃和加载相同数据后,持续增加H2 db大小

时间:2013-07-05 12:28:41

标签: database h2

我有一个名为temp.h2.db的H2数据库,可由两个应用程序访问。第一个通过嵌入模式访问它,第二个通过服务器模式访问它。通过第二个应用程序,我将数据加载到数据库中。但即使我删除以前的值并重复加载相同的数据,db大小也会增加。从大约200mb,它增加到约2Gb。即使我删除所有表并加载一组新数据(几乎与前一组数据大小相同),也会发生这种情况。这是一个错误吗?

我尝试了LOG_SIZE_LIMIT=32,但没有帮助。

这可能是由于开放交易?我们如何确定哪些开放交易存在?我做了两次db的恢复,它给了我一些统计数据。我如何解释这些:

---- Statistics ----
-- page count: 954655, free: 776787
-- page data bytes: head 13860963, empty 26006602, rows 35134291 (66% full)
-- free 91%, 876991 page(s)
-- data leaf 3%, 36622 page(s)
-- data node 0%, 268 page(s)
-- btree leaf 3%, 36567 page(s)
-- btree node 0%, 570 page(s)
-- free list 0%, 52 page(s)
-- stream trunk 0%, 8 page(s)
-- stream data 0%, 3574 page(s)

,下一组是:

---- Statistics ----
-- page count: 235708, free: 164636
-- page data bytes: head 13268512, empty 24936708, rows 33759452 (66% full)
-- free 67%, 159364 page(s)
-- data leaf 14%, 35139 page(s)
-- data node 0%, 267 page(s)
-- btree leaf 14%, 35338 page(s)
-- btree node 0%, 568 page(s)
-- free list 0%, 15 page(s)
-- stream trunk 0%, 9 page(s)
-- stream data 2%, 5005 page(s)

以任何方式帮助MAX_COMPACT_TIME吗?在这里请求你的帮助。感谢。

1 个答案:

答案 0 :(得分:0)

请参见https://github.com/h2database/h2database/issues/301。 这是一种已知的行为,旨在以增加磁盘使用为代价进行更快的写入。