我们使用CMS系统(我猜在后台使用oracle数据库)。 CMS(因此数据库保留数千个图像为blob)问题是当我们使用我们的自定义删除工具在CMS中进行批量删除时(期望数据库大小会变小)但是Zabbix监控我们看到数据库大小神秘地开始增加! / p>
问题所在的任何“想法”?也许DB需要更新或清除命令?或者它的CMS错误试图备份删除的所有内容?但它也没有意义。
由于
答案 0 :(得分:2)
这一开始可能看起来令人惊讶,但一旦您考虑数据库的设计目标,就不会这样。数据库是一种在磁盘上存储数据的高级方法,尤其适用于以下任务:
这两个要求的必然结果是,当您删除某些内容时,不会立即释放数据。在(1)的情况下,这是因为数据以表格形式存储在磁盘上以便快速访问;当您删除某些记录时,Oracle可以释放磁盘空间,所有内容都必须移动并重新组织。在(2)的情况下,当您删除东西时,Oracle希望您将来可以添加新记录。因此,它可以节省空间,以便在添加新内容时可以快速再次使用。
所有这些意味着您不应仅仅因为删除了某些记录而期望磁盘存储空间减少。 (正如Albin Sunnanbo指出的那样,如果略有增加,可能是由于交易日志)。
如果您需要减少数据库正在使用的磁盘空间,可以使用各种策略直接告诉数据库执行此操作。我不是Oracle用户,但this discussion似乎很有帮助。