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

前期工作

     一,预测要导入的数据的量

          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),尽量都优化.

不过会照成代码较为复杂,所以要提前想好整个代码是否要优化到如此程度

 

posted @ 2016-02-04 17:41  MayBel  阅读(160)  评论(0)    收藏  举报