关于导入数据进数据库的心得

发表于:2016-2-24 10:18

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:MayBel    来源:51Testing软件测试网采编

  前期工作
  一,预测要导入的数据的量
  1.判断要导入的每一列数据的变化情况(数据库操作是insert的情况多还是update的情况多)
  2.导入数据时能接受等待多长时间,导入的量能最少接受多少(1000条,还是10000条,还是50000条??)
  二,数据错误的显示形式
  1.统一报错格式,设置错误类型等等
  1),比如文件超过大小,可以报错类型为1.  文件行数超过多少行,可以报错类型为2.
  2.在页面显示报错信息形式
  1),是要在当前导入页显示,还是新的页面显示
  2),报错信息是否还需要导出?
  3),报错信息是以弹窗形式还是页面排列形式?展示时间又为多久?
  三,数据将要以什么方式传递到后端
  1.form表单直接提交?
  2.ajax提交(第三方类,jquery.form.js)
  1).jquery.form.js类可以防止页面刷新提交.
  四,数据要处理的逻辑有哪些
  1.需不需写些日志
  2.和其他同事在代码上的交互,某些状态的关联修改
  代码优化主要是将所有要多次查询的语句,能一次性查询则组装好一次性查询
  比如 : foreach($arr as $v){
  $sql = "select * from goods where id = {$v['id']}";
  }
  代码优化
  先将$arr里面的所有id提取出来,组合成内容为 $ids = '1','2','3';
  最后一次性查询  SELECT * FROM goods WHERE id IN($ids);
  如果是update的语句..仍然有一部分可以组合优化
  UPDATE goods SET status = 1 AND id IN(XXXXX);
  更负杂的有多种维度的情况仍然可以优化
  比如导入数据中有仓库这个维度.
  我们可以组合数组
  $arr = array(
  1 => array('1','2','3'),    //A仓库
  2 => array('1','2','3'),    //B仓库
  3 => array('1','2','3'),    //C仓库
  );
  只要sql语句能一次性修改的(insert,update,delete),尽量都优化.
  不过会照成代码较为复杂,所以要提前想好整个代码是否要优化到如此程度
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号