我面临着以前从未遇到过的挑战,并且很难找到有效的解决方案。 (可能是因为我不是受过训练的程序员,也不了解所有术语)。
挑战:
我有一个数据提要,每天需要用它来维护一个 mysql 数据库。为此,需要检查记录是否存在,然后相应地更新或插入。
这本身就足够简单了,但是对数千条记录运行它——对每条记录进行查询以检查它是否已存在于数据库中似乎效率很低。
有没有比遍历我的数据提要并为每条记录运行单独查询更有效的方法?也许是一种以某种方式将它们准备成一个更大的查询的方法(假设这是一种更有效的方法)。
我不确定此处是否需要代码示例,但如果我可以提供更多信息,请尽管询问!我非常感谢任何建议。
编辑:
@Sgt AJ - 数据馈送中的每条记录都有许多不同的列,但它们由一个 ID 索引。我会在数据库中检查该 ID 以查看是否存在记录。在这种情况下,我只更新一个表,尽管是一个大表(30 多列,主要是文本)。
最佳答案
问题是什么;
如果问题是检查、插入和更新的性能;
insert into your_table
(email, country, reach_time)
values ('mike@gmail.com','Italy','2016-06-05 00:44:33')
on duplicate key update reach_time = '2016-06-05 00:44:33';
我假设,您的 key 是电子邮件
旧样式,不要使用
如果电子邮件存在
update your_table set
reach_time = '2016-06-05 00:44:33'
where email = 'mike@gmail.com';
其他
insert into your_table
(email, country, reach_time)
values ('mike@gmail.com','Italy','2016-06-05 00:44:33')
关于PHP & MySQL,快速连续多次检查行的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37636354/