Mar*_*ine 2 mysql duplicates duplicate-removal
我正在构建一个系统,可以经常从其他API更新其本地数据库.我将Python脚本设置为cron作业,他们的工作几乎没有.
然而,唯一的缺陷是脚本需要很长时间才能完成.当它们第一次运行时,过程很快,但在此之后需要将近20分钟才能完成从第三方API收到的200k +项目列表.
问题是脚本首先从数据库中获取所有行,并将它们必须唯一的列值添加到列表中.然后,在浏览API结果时,它会检查列表中是否存在当前项必须是唯一值.这变得非常沉重,因为列表中的值超过200k.
有没有办法检查INSERT-query,基于单个列,没有重复?如果有,只是不添加新行.
任何帮助将不胜感激=)
如果UNIQUE向必须包含UNIQUE值的列添加密钥,当您插入违反此约束的行时,MySQL将会抱怨.
然后你有三个选择:
INSERT IGNORE 将尝试插入,并在违规的情况下,什么都不做.INSERT ... ON DUPLICATE KEY UPDATE 将尝试插入,并在发生违规时将行更新为新值REPLACE 将尝试插入,并在发生违规时删除违规现有行,并插入新行.