最优化/最有效的方式来更新数据库

时间:2015-07-27 04:44:56

标签: php mysql

我的数据集超过10000(这将来会更多)记录如下:

[[name=>'name1',url=>'url1', visit=>120],
[name=>'name2',url=>'url2'], visit=>250,
..........
]

key组合nameurl可能有重复的值。在这种情况下,我需要得到每个记录的总和都有重复的nameurl

最后,我希望将此值插入数据库。当我这样做时,我有两种方法可以做到这一点:

  1. 使用唯一组合(name,url)和访问总和
  2. 创建另一个数组
  3. 为循环中的每条记录更新/插入数据库。
  4. 执行此操作的最佳解决方案是什么?还是更好方式执行此操作?

    我知道第一种方法中的大数据集存在内存问题。在第二种方法中有很多db命中,如果我按照第二种方式我需要知道它的缺点。

    任何帮助或见解都将不胜感激。

1 个答案:

答案 0 :(得分:-1)

我自己做了一些像这样的大数据库更新,花了很多时间尝试不同的解决方案。

而不是:

  1. 检查记录是否存在,例如从数据中选择count(id) name ='name'和url ='url'
  2. 未找到,插入记录
  3. 找到,总结结果
  4. 我会尝试这个

    1. 在网址和名称字段上设置数据表上的唯一主键。
    2. 尝试进行正常插入并查看是否获得了成功结果。
    3. 如果结果不成功(名称和网址已有值,因为这两个字段必须唯一),请对结果求和。