这个对我很有意思 - 尽管几乎是愚蠢的称号。我已经使用了Firebird很长一段时间,但直到最近才注意到一个有趣的行为。
我正在使用嵌入式firebird 1.5,并注意到如果我填充了数据库中的blob(假设值为10mb),则数据库的大小会增加。然后,我可以删除数据库中的所有字段,并且数据库的文件大小保持其扩展大小。目前它是20mb并且完全是空的。
我知道firebird已将其内置于其架构中(用于快速索引,速度问题等),但我一直认为它会降低到原来的~2mb默认值。
有没有人建议'缩小'文件大小?原因在于这是一个空间意识问题。如果我有足够的空间可以使用,我不在乎。然而事实并非如此,我需要尽可能优化的事情
谢谢!
答案 0 :(得分:4)
在firebird数据库中释放未使用空间的唯一方法是进行备份,然后立即恢复该备份(参考:Firebird FAQ)。
Here是一个很好的技术解释,为什么会这样。
请注意,Firebird将重用当前未使用的空间 - 即。如果你现在再添加10MB blob,数据库不应该增长到30MB。