3

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

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

这可能是由于开放交易吗?我们如何确定存在哪些未结交易?我对数据库进行了两次恢复,它给了我一些统计数据。我如何解释这些:

---- 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以任何方式提供帮助吗?在这里请求您的帮助。谢谢。

4

1 回答 1

0

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

于 2019-10-14T07:42:05.450 回答