NodeJs MYSQL序列批量插入最佳实践

时间:2018-06-26 02:50:50

标签: javascript mysql node.js

我有一个要使用nodejs插入MySQL数据库的数据列表。 我将代码编写为:

con.connect(function (err) {
     myArray.forEach((el)=>{
        con.query(1stQuery,1stValue,(error,result)=>{
        //dosomething with result
           con.query("SELECT LAST_INSERT_ID();",(error2,result2)=>{
                myArray.child.foreach((el2)=>{
                    //insert child into an array after processing 
                    //keep counter of for each, when every child is looped do insert

                       con.query(2ndQuery,ArrayOfValue,(error3,result3){
                        //when everything is finished then send some data back to user
                       })

                })

             })

        })
    })
}

一切正常,但速度太慢。我目前正在使用xammp在本地服务器上进行测试,并插入了约400项父数据条目和800项其子项条目,耗时约60秒。 有什么办法可以改善运行时性能?

1 个答案:

答案 0 :(得分:1)

  1. 您应该准备查询,并将其重新用于每个插入。参见https://www.npmjs.com/package/mysql#preparing-queries
  2. 您应该使用事务处理批量插入。这大大提高了性能,因为MySQL不必在每次插入后都提交。