记录一次node单创建的性能问题批量组装sql一次发送

 DataHp.myBatchCreate = async (sql,values) => {
    return new Promise(function (resolve, reject) {
      DataHp.dataSource.connector.query(sql, function (err, data) {
        if (err) {
          reject(new FunctionError("QUERY_ERROR", "查询数据失败!"));
        }
        resolve(data);
      })
    })
  }
  function FindInsetSql(table,data,values){
    //INSERT INTO xx(1,2,3,4) VALUES (123,2,3,4),(2,3,4,5,6,)
    let str=`INSERT INTO ${table}(`
    let stra="";
    if(data==null){
      data=values[0];
    }
    for(let k in data){
      stra+=k+",";
    }
    stra= stra.substring(0,stra.length-1);
    str+=stra;
    str+=") VALUES ";
    let three="";
    for(let i=0;i<values.length;i++){
      let a="(";

      for(let k in data){
        let aaa=values[i][k];

        if(aaa){
          a+="'"+aaa+"',";
        }else{
          a+=aaa+",";
        }
      }
      a= a.substring(0,a.length-1);
      a+="),";
      three+=a;
    }
    three= three.substring(0,three.length-1);
    str+=three;
    return str;
  }
  DataHp.BatchCreate = async (table,data,values) => {
    if(values&&values.length>0){
      // console.log(values.length+"\t"+table);
      return  await DataHp.myBatchCreate( FindInsetSql(table,data,values));
    }
  }

调用

      await DataHp.BatchCreate("report",reportInputs[0],reportInputs);
DataHp.ConvetCvs =  (hander,data) => {
    console.log('计算开始', moment().format('YYYY-MM-DD HH:mm:ss'))

    let str="";
    for(let i=0; i<hander.length;i++){
      if(i===hander.length-1){
        str+=hander[i]+"\n";
      }else{
        str+=hander[i]+",";
      }
    }
    for(let i=0;i<data.length;i++){
      let d="";
      for(let a in data[i]){
        if(isNaN(data[i][a])){
          d+=data[i][a]+",";
        }else{
          d+="\t"+data[i][a]+",";
        }
      }
      d= d.substring(0,d.length-1);
      d+="\n";
      str+=d;
    }
    console.log('计算开始end', moment().format('YYYY-MM-DD HH:mm:ss'))

    return str;
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值