加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

为什么我的Firebird数据库对于它所拥有的数据量如此巨大?

发布时间:2020-12-12 07:08:21 所属栏目:MsSql教程 来源:网络整理
导读:我最近一直在玩数据库编程,我注意到有点令人担忧的事情. 我拿了一个以专有的非压缩格式保存的二进制平面文件,它保存了几种不同类型的记录,构建了表示相同记录的模式,并将数据上传到Firebird数据库.原始的平面文件大约是7 MB.该数据库超过70 MB! 我可以理解,
我最近一直在玩数据库编程,我注意到有点令人担忧的事情.

我拿了一个以专有的非压缩格式保存的二进制平面文件,它保存了几种不同类型的记录,构建了表示相同记录的模式,并将数据上传到Firebird数据库.原始的平面文件大约是7 MB.该数据库超过70 MB!

我可以理解,描述表本身有一些开销,而且我在各种表上都有一些最小的索引(主要是PK)和FK,所有这些都会占用一些空间,但似乎只有10倍有点荒谬.有没有人对这个数据库如此糟糕的东西有什么想法,以及我如何才能减小尺寸?

解决方法

从 Firebird FAQ开始:

许多用户想知道为什么当他们从数据库中删除大量记录时,他们没有获得磁盘空间.

原因是它是一个昂贵的操作,它需要大量的磁盘写入和内存 – 就像对硬盘分区进行重新分区一样.这些数据使用的数据库(页面)部分标记为空,Firebird将在下次需要写入新数据时重用它们.

如果磁盘空间对您很重要,则可以通过备份然后还原来获取空间.由于您正在进行备份以立即恢复,因此使用“禁止垃圾收集”或“不使用垃圾收集”开关(isql中的-G)是明智的,这将使备份变得更快.垃圾收集用于清理数据库,因为它是一项维护任务,它通常与备份一起完成(因为备份必须经过整个数据库).但是,你很快就会抛弃那个数据库文件,而且不需要清理它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读