我在 Java 中使用 HSQLDB 数据库,它将文件存储在定义为 BLOB 的列中。
当我将带有文件/BLOB 的表行添加到我的表中时,.lobs 文件会增加文件/BLOB 的大小。当我将另一个文件添加到我的表中时,它的大小再次增加(2 x BLOB 大小)。
所以,我实现了一个测试方法,它迭代 10 次并将同一个文件写入我的表并在插入后立即将其删除。
现在,我的 .lobs 文件是 10 x 文件大小......即使我已经删除了包含该文件的所有表行。
我试图执行 CHECKPOINT DEFRAG 但没有任何反应。.lobs 文件保持相同的文件大小。
这让我很担心,因为我正在创建的 webapp 将向我的数据库写入大量文件,即使带有文件 (BLOB) 的表行将在一段时间后被删除,.lobs 文件将始终增加或保持不变大小并最终吃掉我所有的磁盘空间。
我是否缺少某些设置,或者这是 HSQLDB 和 BLOB 的预期行为?
非常感谢!
亲切的问候,安德烈亚斯