首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从数据库中自动删除过期记录?

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

Stack Overflow用户
提问于 2011-03-23 21:50:54
回答 3查看 1.6K关注 0票数 0

我们正在建立一个使用关系数据库的大型股票和外汇交易平台。在一天中的任何时候,我们的Orders表中都会有数千条(如果不是数百万条)记录。有些订单如果不能立即完成,就会过期,必须从该表中删除,否则,该表将非常迅速地增长。每个订单都有一个过期时间。订单到期后,必须将其删除。尝试使用扫描和删除记录的计划作业手动执行此操作的速度非常慢,并且会影响系统性能。我们需要强制记录基本上自行删除。

有没有办法配置任何RDBMS数据库,以便在时间发生在过去时根据日期/时间字段自动删除记录?

EN

回答 3

Stack Overflow用户

发布于 2011-03-23 22:07:28

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

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

票数 1
EN

Stack Overflow用户

发布于 2011-03-23 22:15:55

为什么必须删除该行?

我认为你这是本末倒置。如果行已过期,则可以通过多种方式使其对系统的其他部分“不可见”,包括仅显示满足特定条件的订单的视图。如果您的数据库有适当的索引,那么周围有额外的删除行应该不会影响性能。

需要什么级别的审核和跟踪?没有对过期的订单进行分析吗?

已完成的订单会变成其他类型的文档/实体吗?

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

票数 1
EN

Stack Overflow用户

发布于 2011-03-23 21:57:59

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

那么,让插入触发器在插入新记录时删除所有过期的记录又有什么关系呢?这将使所有记录的数量保持相对较小。

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

https://stackoverflow.com/questions/5406237

复制
相关文章

相似问题

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