是否可以仅将HSQLDB持久保存到文件而内存中没有任何数据?

问题描述

遍历HsqlDB的文档,似乎即使在连接URL中指定了文件,该文件仍将在内存中保存一些表数据。可以将属性hsqldb.cache_rows设置为0来做什么吗?

本质上,我希望它的行为类似于sqlite,其中数据仅存储在文件中。操作(选择/插入/更新/删除)后,它将仅修改文件,而不必进行任何内存中的更改。因此,重新启动应用程序时,只需从该文件中读取以前保存的数据即可。是否可以复制这种行为?

解决方法

所有数据库系统在写入磁盘之前都要先更改内存。

如果您的问题是有关所有提交到磁盘的更改,这些是设置和选项。

属性设置<div id="container"></div>会在提交时立即将所有更改强制写入磁盘。参见http://hsqldb.org/doc/2.0/guide/dbproperties-chapt.html#dpc_db_file_mem

如果使用hsqldb.write_delay=false将表数据存储在文本文件中,则所有数据在提交时都会写入磁盘。参见http://hsqldb.org/doc/2.0/guide/texttables-chapt.html