使用 HSQLDB 清除 .lobs 文件的推荐方法

Posted

技术标签:

【中文标题】使用 HSQLDB 清除 .lobs 文件的推荐方法【英文标题】:Recommended way of clearing .lobs files with HSQLDB 【发布时间】:2012-05-01 14:30:03 【问题描述】:

我正在将 HSQLDB 用于保存 BLOBS 的项目,版本为 2.2.8,并且可以看到 .lobs 文件按预期创建。

*.lobs 文件的大小不断增加,并且不会因为从应用程序中删除记录而下降。

在阅读文档时,发现.lobs文件没有被清除,必须在关闭数据库后完成。

所以,问题是:如果我们有应用程序 24*7 在线,那么我们如何处理 lobs 文件的清除或缩小大小?

有没有办法以编程方式做到这一点? 或通过某种方式通过配置设置(刚刚发现 lob_file_scale 设置,这不是我想要的)? 在这种情况下,推荐的内务管理方法是什么?

【问题讨论】:

【参考方案1】:

当 CHECKPOINT 发生时,已删除的 lob 占用的所有空间都将被释放。该空间被重新用于新的 lob,并且 .lobs 文件的大小在所有空间都用完之前不会增长。

当 .log 文件的大小达到限制时,会定期出现检查点。也可以通过执行 CHECKPOINT SQL 语句来执行检查点。

【讨论】:

以上是关于使用 HSQLDB 清除 .lobs 文件的推荐方法的主要内容,如果未能解决你的问题,请参考以下文章

删除或缩小 HSQLDB 数据库中的 lobs 文件

HSQLDB - 如何设置 .lobs 文件编码?

从 HSQLDB LOBS 文件增长中恢复的最佳方法

Quartz Scheduler +HSQLDB 巨大的 .lobs 文件。尺寸永远增加

hsqldb休眠持久化@Lob

使用 Hibernate 更新 HSQLDB 上的 LOB/BLOB 值会产生数据异常