从db2数据库Spring Boot填充内存数据库中的h2

时间:2020-04-06 15:03:05

标签: java spring spring-boot h2

我当前正在使用h2内存数据库构建Spring Boot服务。 该数据库充当具有不同数据库模式的中央db2数据库上部分数据的缓存。

现在,当Spring Boot服务启动时,它需要使用中央数据库中的最新数据填充h2数据库。

如何以最佳的方式在性能方面做到这一点? 我目前正在寻找在服务中创建其他数据源的方法,以首先获取数据,然后将数据保存到h2。

这感觉不是一个很好的解决方案,并且填充数据库需要很长时间。

1 个答案:

答案 0 :(得分:3)

如果您想使用H2代替DB2数据库...并且不想在每次运行应用程序时重新创建数据库...

...然后考虑使用H2文件而不是内存中的文件:

http://www.h2database.com/html/features.html

jdbc:h2:[file:][<path>]<databaseName>
jdbc:h2:~/test
jdbc:h2:file:/data/sample
jdbc:h2:file:C:/data/sample (Windows only)

您可以随时(可能只是一次)“初始化”文件。

性能应该很好。


每次更新:

我仍然需要访问中央数据库以获取最新数据。 最快的方法。中央数据库需要保留其他服务 也访问此

获取最新数据的“最快”方法是直接查询中央数据库。期间-没有if / ands / buts。

但是,如果出于某种原因,您想要“缓存”“最近”数据的子集...那么H2是一个很好的选择。

如果不想在每次启动H2数据库时都“重建”,则将H2保存到文件中,而不是将其存储在内存中。

与查询中央数据库的网络开销相比,H2:mem和H2:file之间的性能差异很小。

'希望有帮助...