不确定描述我正在尝试做的事情的最佳方式,所以请耐心等待。我正在使用 PHP 和 mysql 数据库工作。
我有一个包含 10,000 条记录的数据库。假设我想全年每天更新 10000/365。每条记录每年更新 1 次,并在全年很好地传播。
一个简单的方法是选择所有记录,然后对于每条记录,如果 ID % 365 = $day_of_year,则更新该记录。我不担心闰年。
有没有一种方法可以让我只从数据库中选择我需要的记录(大约 27 条),而不是选择所有 10,000 条记录并遍历每条记录?这是我将在半夜运行的 cron 作业,所以这可能是一个有争议的问题。尽管如此,让我感到困扰的是我必须强行通过所有 10,000 个。很想通过只提取所需的一小部分来找到更优雅的解决方案。
最佳答案
在您的表中添加一列,指示应在一年中的哪一天更新记录。
然后添加一个每年运行一次的事件,该事件重置该列值并计算新值 - 一年中的几天分布 10000 条记录。
然后添加另一个每晚运行的事件以更新当天的记录。
关于php - 每年更新一次记录,全年平均分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26744244/