更新数据Feed以检查新值和当前值

时间:2017-05-25 01:55:52

标签: php mysql cron

我将设置一个cron作业来通过API更新一些数据。我希望它用新的feed更新数据库。

即。我会有一个现有的条目提要,一个脚本将通过新的提要。如果条目已经存在,那么不要更新,如果它不在数据库中,则添加它,并且需要删除所有其他条目。

我想知道这样做的好方法是有一个名为“更新”的列。默认情况下为0。添加新条目或选中现有条目时,列值变为1.一旦cron作业完成更新,它将删除所有仍为0的值,并将余数重置为0.

这是否是完成这项工作的正确方法,如果它有超过1000万行的帮助。

1 个答案:

答案 0 :(得分:1)

首先,没有正确或错误的答案,它总是取决于。

现在按照您的方法说,每次执行同步时,您将在主(目标)表中更新所有10米+ 行两次,具体取决于此表的繁忙程度或者可能不被接受。

您可以考虑在ETL中广泛使用的不同方法:

  1. 首先将Feed数据加载到临时表中;批量插入或尽可能使用LOAD DATA INFILE - 在MySQL中摄取数据的最快方法
  2. 可选择构建索引以帮助查找
  3. 在必要时“按摩”您的数据(清理,转换,扩充等)
  4. 在主表中插入所有新行,而不是在主表中
  5. 从主表中删除不存在于临时表中的所有行
  6. truncate staging table