防止基于列(MySQL)的重复行?

Mar*_*ine 2 mysql duplicates duplicate-removal

我正在构建一个系统,可以经常从其他API更新其本地数据库.我将Python脚本设置为cron作业,他们的工作几乎没有.

然而,唯一的缺陷是脚本需要很长时间才能完成.当它们第一次运行时,过程很快,但在此之后需要将近20分钟才能完成从第三方API收到的200k +项目列表.

问题是脚本首先从数据库中获取所有行,并将它们必须唯一的列值添加到列表中.然后,在浏览API结果时,它会检查列表中是否存在当前项必须是唯一值.这变得非常沉重,因为列表中的值超过200k.

有没有办法检查INSERT-query,基于单个列,没有重复?如果有,只是不添加新行.

任何帮助将不胜感激=)

Kon*_*rak 5

如果UNIQUE向必须包含UNIQUE值的列添加密钥,当您插入违反此约束的行时,MySQL将会抱怨.

然后你有三个选择: