我的任务是将一些数据从 mysql 加载到 h2。我们必须在 UI 级别渲染一棵树,该树有大约 50000 个节点。因此认为从 H2 读取可能会减少延迟。
为此,我必须将大约 1M(每个客户都有自己的树)记录从 MySQL 加载到 H2。加载部分由应用程序处理。它从 MySQL 读取并对 H2 进行批量更新。它在一次执行时处理 40000 条记录。但是随着迁移过程的继续,服务器内存不足。
我尝试使用“SET LOG 0, SET LOCK_MODE 0, SET UNDO_LOG 0”来有效地加载数据,但服务器内存不足仍然相同。
我为堆设置了 512M 内存。
H2 文档说使用“create table ... as select ...”来更快地加载数据,但我认为这不会减少加载时间,因为应用程序必须读取 1M 记录并创建 CSV 文件。
有人可以建议一种方法吗?