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

Posted

技术标签:

【中文标题】是否可以仅将 HSQLDB 持久保存到内存中没有任何数据的文件?【英文标题】:Is it possible to persist HSQLDB only to file without any data in memory? 【发布时间】:2020-11-06 15:58:21 【问题描述】:

浏览 HSQLDB 的文档,似乎即使您在连接 URL 中指定了一个文件,它仍然会在内存中保存一些表数据。将属性 hsqldb.cache_rows 设置为 0 是否符合我的要求?

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

【问题讨论】:

【参考方案1】:

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

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

属性设置hsqldb.write_delay=false 强制在提交时立即对磁盘进行所有更改。见http://hsqldb.org/doc/2.0/guide/dbproperties-chapt.html#dpc_db_file_mem

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

【讨论】:

以上是关于是否可以仅将 HSQLDB 持久保存到内存中没有任何数据的文件?的主要内容,如果未能解决你的问题,请参考以下文章

运行程序后文件数据库中没有模式通过休眠持久化到 hsqldb:file

是否可以仅将图像保存到 iOS6 中的自定义相册?

HSQLDB:内存表和数据丢失

您能否仅将较大的磁盘映像的较小矩形部分加载到内存中?

如何创建仅在 JVM 生命周期内存在的 HSQLDB 数据库?

嵌入式 HSQLDB 将数据持久化到文件中