我有一个必须从远程源导入TONS数据的应用。每次通话500至1500个条目。
有时,一些数据将需要替换已存储在dB中的数据。如果我不得不猜测,我会说300或400个条目需要更换一次。
每个传入条目都有唯一的ID。因此,我试图弄清楚是否总是根据此ID发出删除命令或检查是否已有条目然后删除更有效。
我找到了this SO post,其中谈到了dB必须做的重要工作才能删除某些东西。但它正在讨论一个不同的问题,所以我不确定它是否适用于此。
答案 0 :(得分:3)
每个传入条目都有唯一的ID。因此,我试图弄清楚是否总是根据此ID发出删除命令或检查是否已有条目然后删除更有效。
都不是。使用INSERT ... ON DUPLICATE KEY UPDATE ...
。
答案 1 :(得分:0)
由于您使用的是MySQL并且拥有唯一密钥,因此让MySQL完成工作。
你可以使用
INSERT INTO..... ON DUPLICATE KEY UPDATE......
MySQL将尝试在表中插入新记录,表中是否存在唯一值,然后MySQL将更新您在更新后设置的所有字段
您可以阅读有关INSERT INTO..... ON DUPLICATE KEY UPDATE......
语法的更多信息
http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html