php - 每年更新一次记录,全年平均分布

标签 php mysql algorithm

不确定描述我正在尝试做的事情的最佳方式,所以请耐心等待。我正在使用 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/

相关文章:

mysql - SQL 'Not in' 涉及三张表的查询

algorithm - 容量内数组中元素的最大子集

algorithm - 参数评分函数或算法

php - 删除 WooCommerce Checkout 中一些基于虚拟产品的 Hook 功能

php - 使用 cron 执行 PHP 将文件上传到 Google 驱动器

php代码按列名排序mysql查询表

java - 使用 PHP 解码 Java 的 JSON Unicode 值

mysql - 无法在 OpenShift 应用程序上添加 phpMyAdmin Cartridge

mysql简单连接

algorithm - 查找具有相同 1 位数的下一个较小数字的有效方法