我们使用Firebird嵌入式将10条记录(每条记录包含400KB BLOB字段)保存到数据库文件中,数据库文件大小约为5MB。
我们尝试压缩BLOB大约30-40%(压缩BLOB大小小于300KB),但数据库文件大小仍然是5MB。
我们如何制作一个没有或没有“空白空间”的firebird嵌入式数据库文件。
手动gbak无法覆盖我们的情况。
答案 0 :(得分:2)
如果没有备份和还原,Firebird数据库永远不会缩小。它只会在需要时增长。如果已为blob分配了数据库页面,并且已释放该blob(因为您使用不同的blob值替换了它),那么这些页面将被标记为可用。
当数据库需要分配新页面时,它将首先使用标记为可用的页面,并且只有在没有可用页面的情况下才会扩展数据库。它增长的页面数量在firebird.conf中配置。
缩小数据库的唯一方法是执行备份和恢复,但我想如果你有大约10条记录,每条记录的每个blob大约300KB(已经是3MB),那么数据库将不会得到太多取决于确切的增长增量配置和其余行的大小