gpt4 book ai didi

H2数据库批量上传

转载 作者:行者123 更新时间:2023-12-04 03:01:37 26 4
gpt4 key购买 nike

我有一项任务是将一些数据从 mysql 加载到 h2。我们必须在 UI 级别渲染一棵树,其中树有大约 50000 个节点。因此认为从 H2 读取可能会减少延迟。

为此,我必须将大约 1M(每个客户都有自己的树)记录从 MySQL 加载到 H2。加载部分由应用程序处理。它从 MySQL 读取并批量更新到 H2。它在一次执行中处理 40000 条记录。但随着迁移过程的继续,服务器内存不足。

我曾尝试使用“SET LOG 0, SET LOCK_MODE 0, SET UNDO_LOG 0”来有效加载数据,但服务器内存不足。

我为堆设置了 512M 内存。

H2 文档说使用“创建表......作为选择......”来更快地加载数据,但我认为这不会减少加载时间,因为应用程序必须读取 1M 记录并创建一个 CSV 文件。

有人可以建议一种方法吗?

最佳答案

为避免创建 CSV 文件,您可以创建 linked tables使用 CREATE LINKED TABLE 声明或使用 CALL LINK_SCHEMA .然后使用 CREATE TABLE ... AS SELECT 复制数据.

至于内存问题,你创建内存数据库了吗?如果是,如果您使用 in-memory file system, or the compressed in-memory file system,您可以节省内存(以牺牲一些速度为代价)。 :jdbc:h2:memFS:testjdbc:h2:memLZF:test而不是 jdbc:h2:mem:test .如果您没有使用内存数据库,那么我不确定问题是什么。

关于H2数据库批量上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13427726/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com