我有这种情况。
我不是数据库专家,只是一个用户。实现此方案的最佳方法是什么?
最后,我必须将旧订单条目移动到不同的备份表。我的观点是使表格变轻,因为每秒可能有很多请求。我不确定它对数据库施加了多少负载,是否在布尔值和搜索时间之间存在差异
答案 0 :(得分:1)
我认为你的第二个要点是可疑的:
有很多订单,所以最好让字段“有效”,而不是根据时间查询列出它们。
最好为“订单”设置一个结束时间,然后通过在结束时间之前查找当前时间来查询活动订单。如果对其进行索引,则活动字段将为您提供糟糕的选择性(位图索引可能更好)。此外,您必须更新行以将其从活动更改为非活动 - 并且您可以在截止日期之前执行活动订单,因为活动标记未及时更改。
将旧订单移动到辅助存储(除主表之外的其他内容,不一定在DBMS之外,更不用说在磁带上)可能是一个好主意。它也不是时间关键;你可以在订单不再有趣之后的任何时候做到这一点。
答案 1 :(得分:1)
听起来你要做很多工作来解决一个问题,没有证据证明你有这个问题。特别是如果您要将旧记录归档,为什么不在创建专用于维护第二列的整个系统之前不能进行基于时间的搜索,该第二列执行与时间栏。
如果您确定需要保留单独的活动竞价列表,请考虑不使用特殊列(并且主要是浪费索引),而是创建一个仅包含主键列的active_auctions表。拍卖。为每个变为活动的竞价在此表中添加一行,并在变为非活动状态时将其删除。将此表格加入主要拍卖表,以获取当前有效拍卖的列表。