我们要求每天从数据库中删除 200K 范围内的数据。我们的应用程序是基于 Java/Java EE 的,使用 Oracle DB 和 Hibernate ORM 工具。
我们探索了各种选择,例如
- 休眠批处理
- 存储过程
- 数据库分区
我们的 DBA 建议数据库分区是最好的方法,因此我们可以每天轻松地重新创建和删除分区表。现在的问题是我们有两种数据,一种我们想每天删除,另一种我们想保留它。假设此数据存储在“Trade”表中。现在有了分区,我们有 2 个表“Trade”。我们已经存在基于 Hibernate 的 DAO 层来从/向 DB 获取/存储交易。当我们决定对数据库进行分区时,如何通过hibernate来控制交易进入两张表中的哪一张。基本上我想要,交易需要在一天结束时删除,进入分区表和我想保留的交易,在主表中。请建议如何使用 Hibernate 实现这一点。
如果有人能提出更好的方法以防我们走错路,我将不胜感激。