数据库:MySQL版本5.5.38 使用mysqli连接
服务器代码库:PHP 5.4.30
我需要一些建议,以最有效的方式根据另一个表的内容将记录批量插入表中。
我们的系统有“学分”。 “积分”可以购买和转让。积分会随着时间的推移而过期(您每天损失X),并通过获取交易表中CreditTotal列的总和来计算。
我想为系统中的每个用户插入一个数量为1且信用值为-X的事务,该事务由我们服务器上的cron任务触发。
这需要作为日常任务运行,以便在信用额度降低时提前通知用户。我可能拥有大量的系统用户。
表1:交易
Field name Type Allow nulls? Key Default value Extras
TransKey bigint(20) No Primary NULL auto_increment
OfferKey bigint(20) Yes None NULL
ProdKey bigint(20) Yes None NULL
Credit bigint(20) Yes None NULL
Qty bigint(20) Yes None NULL
TotalPrice decimal(10,2) Yes None NULL
CreditTotal bigint(20) Yes None 0
Price decimal(10,2) Yes None NULL
TranDteTme timestamp No Indexed CURRENT_TIMESTAMP
UserKey bigint(20) Yes Indexed NULL
Field name Type Allow nulls? Key Default value Extras
UserKey bigint(20) No Primary NULL auto_increment
有效地做到这一点的最佳方式是什么,是否有任何我可以避免的明显陷阱?
答案 0 :(得分:0)
值得看看MySQL event scheduler而不是CRON / PHP。 对于这种大规模批处理操作,您可能需要考虑编写MySQL Function or Procedure。