避免CakePHP的saveAll并使用手动查询

时间:2015-06-06 22:26:58

标签: cakephp

我需要每小时更新和/或插入600K记录,这使用CakePHP(2.6)saveAll是相当有问题的(慢)。使用原始查询可以加快速度,但我不确定在Cake中执行此操作的最佳方法是什么。

我需要:

  1. UPDATE table1 SET price = 100,timestamp = $ timestamp WHERE product_id = X AND country_id = Y
  2. 检查UPDATE是否返回任何受影响的行
  3. 如果是,请转到下一条记录
  4. 如果不是,请插入table1(price,product_id,country_id,timestamp)VALUES(100,X,Y,$ timestamp)
  5. 我知道我可以使用$ db-> rawQuery()但是在使用UPDATE等时不会给出任何受影响的行。任何想法?

1 个答案:

答案 0 :(得分:0)

你可以使用纯PHP创建一个cron,这些脚本工作得更快,你可以做任何你想做的事。