Database design 排队还是不排队

Database design 排队还是不排队,database-design,coding-style,logic,scheduled-tasks,Database Design,Coding Style,Logic,Scheduled Tasks,我正在开发一个应用程序,每周完成一次任务。以下是基本逻辑: Check datatable and look at timestamp If timestamp is older than 1 week, complete task Else skip 我们看到了两种实现这一点的方法,希望您能提出想法/意见。请记住,数据库将以指数级增长,因此数据库性能是一个真正的问题。我们将添加粗骨料 我们可以创建一个脚本,每周(或每天)运行一次,检查数据库,如果它找到一个为TRUE的项,它会将数据库记录添加

我正在开发一个应用程序,每周完成一次任务。以下是基本逻辑:

Check datatable and look at timestamp
If timestamp is older than 1 week, complete task
Else skip
我们看到了两种实现这一点的方法,希望您能提出想法/意见。请记住,数据库将以指数级增长,因此数据库性能是一个真正的问题。我们将添加粗骨料

  • 我们可以创建一个脚本,每周(或每天)运行一次,检查数据库,如果它找到一个为TRUE的项,它会将数据库记录添加到队列表中。稍后,我们从队列表中运行实际任务,直到它为空

  • 创建一个循环语句来检查datatable并处理每一行是否为TRUE


  • 谢谢

    有了正确的索引,获取要执行的记录应该足够快。例如,如果表有一个“STATUS”字段和一个“NEXT_FIRE_TIME”字段,并且索引的开头有这两个字段,那么选择所需的行应该不会比从单独的表中读取慢多少。而且,这将意味着要处理的步骤/要素少了一步。另外,您将使用什么语言编写代码?您可能会发现一个现成的工具,它可以为您执行一些存储/检查/触发操作(例如,如果您使用Java,则为Quartz)。您是否有维护窗口?你说表现是一个因素。。。如果可能的话,您应该在您的维护时段安排此休息时间。选项2将在服务器上产生不必要的负载(可能在高峰时间)。如果此处理可以等待7天。。可能还要等几个小时