如何从数据库中自动删除过期的记录?

时间:2011-03-23 13:50:54

标签: database datetime

我们正在使用关系数据库构建大型股票和外汇交易平台。在白天的任何时候,我们的订单表中都会有数千甚至数百万条记录。有些订单如果没有立即履行,则会过期,必须从此表中删除,否则,表格会快速增长。每个订单都有一个到期时间。订单到期后,必须将其删除。尝试使用扫描和删除记录的计划作业手动执行此操作非常慢并且会妨碍系统的性能。我们需要强制记录基本上删除自己。

是否可以配置任何RDBMS数据库,以便在过去的时间内根据日期/时间字段自动删除记录?

3 个答案:

答案 0 :(得分:1)

由于您很可能必须实施复杂的订单处理,例如限价订单,止损限价订单等您需要一个强大的机制来监控和执行实时的订单。此过程不仅限于过期订单。这是交易平台的核心机制,您必须设计一个满足您需求的强大解决方案。

回答您的问题:删除过期订单,作为正常订单处理的一部分。

答案 1 :(得分:1)

为什么必须删除该行?

我认为你把这辆车放在马前。如果某行已过期,则可以通过多种方式使其对系统的其他部分“不可见”,包括仅显示符合特定条件的订单的视图。如果数据库被适当地编入索引,那么额外删除的行不应妨碍性能。

需要什么级别的审核和跟踪?是否曾对过期订单进行过分析?

履行的订单会成为其他类型的文件/实体吗?

许多数据库中都有一些技术允许您对表进行分区。使用分区功能,可以更容易地定期清除(类似行)的分区。

答案 2 :(得分:0)

您尚未指定正在使用的数据库,但我们假设您使用MSSQL,您可以创建定期运行的代理作业,但您说这可能不适合您。

那么有什么关于插入触发器,插入新记录时删除所有已过期的记录?这将使记录的数量都相对较小。