我正在使用Spring MVC和Hibernate Envers审计我的数据库,我该如何处理旧数据以减少已用磁盘空间?
我是否必须在每个特定时间段备份数据库,并在备份后清空审核数据库?有什么技巧可以解决这个问题?
最佳答案
Hibernate的手册中介绍了一种称为分区的技术:
https://docs.jboss.org/hibernate/orm/4.2/devguide/en-US/html/ch15.html#envers-partitioning
但是,它似乎只能解决索引/查询时间问题(它只会创建最重要的数据(最新数据)的“存储桶”),而不是磁盘空间本身。
如果您的旧数据对于应用程序适当的功能并不是严格必需的,则可以使用“结束修订日期”作为切入点,从中可以擦除_AUD表中的行。这不会中断,只会给您正确的修订历史记录。