我当前正在使用h2内存数据库构建Spring Boot服务。 该数据库充当具有不同数据库模式的中央db2数据库上部分数据的缓存。
现在,当Spring Boot服务启动时,它需要使用中央数据库中的最新数据填充h2数据库。
如何以最佳的方式在性能方面做到这一点? 我目前正在寻找在服务中创建其他数据源的方法,以首先获取数据,然后将数据保存到h2。
这感觉不是一个很好的解决方案,并且填充数据库需要很长时间。
答案 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之间的性能差异很小。
'希望有帮助...