Hsqldb-进程崩溃时数据如何持久化
Posted
技术标签:
【中文标题】Hsqldb-进程崩溃时数据如何持久化【英文标题】:Hsqldb-How data will persist when process crashes 【发布时间】:2011-09-06 12:46:00 【问题描述】:我希望数据应该在 hsqldb 数据文件中提交,而进程崩溃而不记录到日志文件。我设置了一个命令“SET FILES WRITE DELAY FALSE”,但它需要启用日志文件来保存数据。因为日志记录会产生性能影响,我不想要它。所以有什么方法可以实现这个目标。
登录应用程序有什么影响。
提前致谢, 阿尼尔
【问题讨论】:
【参考方案1】:HSQLDB 默认将数据写入 .log 文件。此 .log 文件用于在发生崩溃时进行恢复。
当设置SET FILES WRITE DELAY FALSE
时,引擎会在每次提交时对 .log 文件执行文件同步。性能影响的原因是文件同步操作。此设置对测试很有用,当许多更改被快速写入并且过程始终存在时。对于许多应用程序来说,这不是必需的,因为默认情况下,如果已写入新记录,则每 0.5 秒对 .log 文件执行一次同步。这可以减少到 100 毫秒,而不会对性能产生很大影响。
您可以使用SET FILES LOG FALSE
语句关闭登录并执行批量插入或更新,但不建议将其作为默认设置。
在任何时候,包括关闭日志记录时,您都可以执行显式 CHECKPOINT 以将所有数据提交到 .data 和 .script 文件。
【讨论】:
以上是关于Hsqldb-进程崩溃时数据如何持久化的主要内容,如果未能解决你的问题,请参考以下文章
运行程序后文件数据库中没有模式通过休眠持久化到 hsqldb:file
无法使用 JPA 2.0、Spring 2.5.6、Hibernate 3.6.1 和 Maven 在 HSQLDB 中持久化