存储并比较 UNIX 时间或到期天数

存储并比较 UNIX 时间或到期天数

我正在考虑一个项目,我将使用 SQL 数据库来存储以天为单位的过期日期的行。每天我都会清理数据库中的过期行。我正在考虑两种解决方案:

1

存储expiration为未来天数的整数。然后,每天:

  1. 遍历数据库并1expiration每一行中减去。
  2. 删除小于expiration或等于的行0

2

存储expiration为未来的 UNIX 时间。然后每天:

  1. 在数据库中搜索小于expiration或等于当前 UNIX 时间的行。

在我看来2更优越,因为:

  1. 它将减少对数据库的写入。可能有些天不使用选项写入任何内容2,但选项1将会修改每一行。
  2. 如果维护脚本有一天没有运行,1将会落后,而2可以赶上。

我的问题是:

  1. 我说得对吗?2更好的选择,还是我遗漏了什么?
  2. 是否存在总体更优的第三种选择?

答案1

相对的到期时间低于绝对在绝大多数情况下都是如此 - 试想一下错过(或更糟:半运行)的 cron 作业对于相对时间意味着什么。

据我所知,相对时间唯一优越的情况是当它们经常以相对形式需要时,必要的计算开始产生影响。除了少数非常专业的应用程序外,这并不现实。

所以:是的,使用到期时间点的 UNIX 时间戳更有意义。

相关内容