PHP & MySQL,快速连续多次检查行的有效方法?

标签 php mysql performance query-optimization

我面临着以前从未遇到过的挑战,并且很难找到有效的解决方案。 (可能是因为我不是受过训练的程序员,也不了解所有术语)。

挑战:

我有一个数据提要,每天需要用它来维护一个 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/

相关文章:

MySQLWhere条件

c# - C# 与 C++ 静态数组中静态常量列表初始化的效率

php - PHP提交表单无法正常工作

java - 如何使用 JPA 和 Hibernate 删除带有 JOIN 的实体

php - 继承自 Db 类 - 两个数据库连接 | PHP

sql - 我们可以通过一个查询从具有公共(public) id 的五个表中获取数据吗?

MySQL:将每个术语选择为 group by 语句中的一列

php - 在 php 中对 Array 或 DB 执行大型查询?

php - Google Auth token 过期并且无法使用 PHP API Auth 客户端刷新?

php - 单击电子邮件中的 Outlook 安全链接保护链接似乎执行了两次代码