我需要在将在Linux设备上运行的Java应用程序中使用嵌入式数据库。该应用程序使用Hibernate和derby数据库。这不是一个Android应用程序。由于数据库性能下降,我们正在寻找更好的嵌入式数据库框架。从所有选项来看,H2似乎比SQLite更好,因为它不涉及交叉编译,也不需要构建JNI接口。因此,为什么没有更多地使用H2。是否有我不知道的任何缺点或问题。
由于 H2 mv 存储中的数据库损坏,我最近从 H2 切换到 SQLite。
如果应用程序没有正确关闭,或者在意外重启的情况下,使用 MV 存储(默认)存储在文件上的 H2 数据库可能会损坏,并且您无法恢复数据。
SQLite 对腐败更加健壮。
在我的情况下,速度明智的 H2 要快得多。SQLite 事务的成本特别高,因此您应该更喜欢在事务中或通过批处理进行批量操作。
至于交叉编译,您可以使用 xerial 的 jdbc 驱动程序,该驱动程序随所有本机二进制文件预编译:https : //github.com/xerial/sqlite-jdbc
| 归档时间: |
|
| 查看次数: |
5625 次 |
| 最近记录: |