【发布时间】:2015-03-25 04:00:30
【问题描述】:
我正在使用内存中的 hsqldb 数据库和 JDBC 驱动程序。
现在,我正在寻找一种方法来保存此数据库,以便在应用程序重新启动后重新加载。我想出了以下选项:
- 使用 sql 命令“SCRIPT ”导出 .script 文件(link)
- 将所有语句记录到日志文件中。
选项 2 有效,但在我看来有点难看。选项 1 的脚本导出也可以,但我似乎无法将 .script 文件恢复到内存数据库中。
感谢您的任何建议。
【问题讨论】:
-
我有点困惑,因为如果您知道要持久化数据库,为什么不将连接 URL 从
mem:更改为file:并指定所需的要存储的数据库? -
出于性能原因,我正在使用 mem 数据库。
-
没有速度惩罚。当您想要持久化 .script 文件时,您可以关闭对文件的日志记录:数据库并发出 CHECKPOINT for SHUTDOWN。
-
@fredt 这很有趣,因为我肯定体验到不同的速度(从数据库读取)。如果我只将
DriverManager连接字符串从 jdbc:hsqldb:mem:xxx 更改为 jdbc:hsqldb:file:xxx,速度会降低。我正在使用内存表。为什么会这样? -
使用 files_readonly=true 属性连接到您作为脚本文件导出的数据库。见hsqldb.org/doc/2.0/guide/…
标签: jdbc persistence hsqldb in-memory-database