使用Sequelize mysql更新批量数据

我想更新超过10万的数据,但我无法更新它。 我正在使用Sequalize和MySQL。 我首先从.txt文件中读取数据,然后根据表中已有的数据更新表格数据。 我正在使用Sequalize,但需要1个多小时才能更新100k条logging。 有没有办法使用Sequalize更新批量数据?

这是我的示例代码:

async.each(arrayData, function(_arrayData, _callback) { var connection = index.connection; let query = 'UPDATE debit_tran_reg SET response_status ='+'"'+_arrayData.response_status+'"'+',response_rejection_reason='+'"'+_arrayData.response_rejection_reason+'"'+',umrn_no='+'"'+_arrayData.umrn_no+'"'+'WHERE loan_no ='+'"'+_arrayData.loan_no+'"'+''; connection.query(query).spread((results, metadata) => { console.log("results> "+JSON.stringify(results)); }); _callback(); },function(err){ if(err){ console.log(err); }else{ console.log("*****ALL DATA HAS BEEN PROCESSED*****") } }); 

我会尝试这些选项:

我现在看到,你为每一行运行一个不同的查询。 我要做的第一件事就是将它们全部收集在一个查询语句中,并只运行一次。 像这样的东西(我会使用一个查询生成器,以防止注射):

 var array = [ {id: 1, val:10} {id: 2, val:15} ]; console.log(array.reduce((s,v)=> s+"update table set col1="+v.val+" where id="+v.id+";", "")) 

然后在事务中运行。

您也可以尝试用事务内的DELETE和INSERT“模拟”更新操作。 批量插入声音的方式比多个更新更快。

编辑 :添加s +的减lessfunction