为什么H2数据库文件的大小比数据大小要大得多?

4
我有一个大小约为500MB的H2数据库。
H2的版本是1.2.147。
数据库的存储引擎是PageStore。
JDBC URL如下所示。
jdbc:h2:file://C:/H2/client;IFEXISTS=TRUE;MVCC=TRUE;DATABASE_EVENT_LISTENER='dummy.H2DBMonitor';AUTO_SERVER=TRUE;LOG=2
我制作了一个版本为H2 1.4.192的新版,但并没有改变数据库的存储引擎。
当我的客户使用数据库时,出现了数据库文件大小膨胀到80GB的问题。
关闭连接后,数据库文件应该变小,但是我的数据库文件大小并没有减小,反而可能会增大。
这是在1.2.147中不会发生的现象。
这个问题是H2数据库的bug吗?
此外,我从trace.db中得到以下错误。 pageStore:无法截断事务日志;大小:462MB
这个错误与这个问题有关吗?
2个回答

1

1
我遇到了同样的问题。我在jdbc url中添加了以下语句。
DEFRAG_ALWAYS=TRUE

2 GB的文件变成了300MB。当数据库关闭时,它会被碎片整理。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接