H2 数据库 PageStore 导致 OutOfMemoryError

H2 database PageStore causing OutOfMemoryError

我将 H2 用作简单的嵌入式数据库来存储少于 10,000 条记录,但开始遇到 OutOfMemoryError。

检查堆转储 org.h2.store.PageStore 保留了将近 800mb 的大小,而这些数据应该只有 5 到 10 兆字节。

我可以采取哪些步骤来进一步调试和解决这个问题?

事实证明,我遇到了更新 7u6 中字符串表示形式更改的副作用。

我的开发环境是 post 7u6,而生产环境是 运行 较早的版本,我无法重现这个问题。

这根本不是 PageStore 的问题,除了由于字符串引用而导致的巨大保留大小。

TIL Oracle changed the internal String representation in Java 7 Update 6 increasing the running time of the substring method from constant to N