2

我们使用嵌入式 Firebird 将 10 条记录(每条记录有 400KB BLOB 字段)保存到一个数据库文件中,数据库文件大小约为 5MB。

我们尝试压缩 BLOB 大约 30-40%(压缩后的 BLOB 大小小于 300KB),但数据库文件大小仍然是 5MB。</p>

我们如何制作没有或更少“空白空间”的firebird嵌入式数据库文件。

手动 gbak 无法覆盖我们的情况。

4

1 回答 1

2

如果没有备份和恢复,Firebird 数据库永远不会缩小。它只会在需要时增长。如果已为 blob 分配了数据库页面,并且该 blob 已被释放(因为您将其替换为不同的 blob 值),则这些页面将被标记为可用。

当数据库需要分配新的页面时,它会首先使用标记为可用的页面,只有在没有可用页面的情况下才会增长数据库。它增长的页数在 firebird.conf 中配置。

缩小数据库的唯一方法是执行备份和恢复,但我认为如果你有大约 10 条记录,每条记录有大约 300KB 的 blob(已经是 3MB),那么数据库不会变得更小,具体取决于确切的增长增量配置和其余行的大小

于 2013-10-18T10:43:17.207 回答