首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在大数据集上实现删除操作之后,HSQL的大小如果很大的话

在大数据集上实现删除操作之后,HSQL的大小如果很大的话
EN

Stack Overflow用户
提问于 2022-05-06 06:34:44
回答 1查看 92关注 0票数 0

因此,我们正在处理一个大型数据集,该数据集将在HSQL表中存储2-3百万条记录,并在达到一定限制后每隔几分钟删除一次。我们观察到,一旦实现了此删除功能,数据库的大小就会从450 So增加到大约5GB,是否可能将这些已删除的数据存储在数据库中一段时间?或者保存多份副本?如果是这样的话,那么如何避免,一旦我们删除数据,我们希望从数据库中删除数据并回收空间。有可用的设置吗?我们的目标是尽可能少地使用磁盘空间。我们将只使用到数据库的一个连接,因此我们不需要线程安全或MVCC,并且当实例出现故障时,我们可以偶尔发生数据损坏或数据丢失,我们还可以使用自动提交模式运行所有连接。

EN

回答 1

Stack Overflow用户

发布于 2022-05-06 08:40:25

对于较早版本的HSQLDB,您需要执行SQL语句CHECKPOINT DEFRAG,以便为已删除的行重新分配空间。

在最新版本2.6.1及更高版本中,有一个管理空间重用的新设置。您需要执行SET FILES SPACE TRUE。然后,对每个大表执行SET TABLE <tablename> NEW SPACE。最后,执行CHECKPOINT DEFRAG。从已删除的行中留下的空间将被自动重用。见指南http://hsqldb.org/doc/2.0/guide/management-chapt.html#tspace_usage

如果要删除表中的所有行,则可以更快地执行TRUNCATE TABLE <tablename> AND COMMIT

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72137123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档