这个对我来说很有趣——尽管标题几乎是空洞的。我已经使用 Firebird 很长时间了,但直到最近才注意到一个有趣的行为。
我正在使用嵌入式 Firebird 1.5,并注意到如果我将数据库塞满 blob(假设价值 10mb),数据库的大小就会增加。然后,我可以删除数据库中的所有字段,并且数据库的文件大小保持其扩展大小。目前它只有 20mb 并且完全是空的。
我知道 Firebird 已将此内置到其架构中(用于快速索引、速度问题等),但我一直认为它会减少到原来的 ~2mb 默认值。
有人对“缩小”文件大小有什么建议吗?原因是这是一个空间意识问题。如果我有大量的工作空间,我就不会在意。然而事实并非如此,我需要事情尽可能优化
释放 Firebird 数据库中未使用空间的唯一方法是进行备份,然后立即恢复该备份(参考:Firebird FAQ)。
这里有一个很好的技术解释来解释为什么会这样。
请注意,Firebird 将重用当前未使用的空间 - 即,如果您现在再放入 10MB 的 blob,数据库不应增长到 30MB。