1. 提前规范好excel的格式,方便获取excel的数据
2. 尽可能的避免循环嵌套
3. 如果存在需求要从数据库获取数据回来跟excel中的数据进行对比,应尽可能以此就获取回来然后在进行对比,而不是循环获取来对比,建立数据库链接是一个很耗时间的操作。
4. 数据插入数据库使用一次批量插入的方法,不能使用一条条循环插入的方法,因为建立数据库链接是一个很耗时间的操作
5. 如果数据量很大,假如有3000条,这个时候就应该将3000条切开成几个数组循环批量插入,比如切成10个数组,每个数组300条,牺牲一点时间减轻服务器的压力。
6. 使用事务时候需要注意,批量插入可能会使事务失效(假如你插入300条一次,到了第200条失败了,这个时候你的事务可能没办法将已经插入的回滚,laravel框架查询构建器的insert方法就存在这种问题,不确定其它框架是否存在这个问题),这个问题可以在每一次批量插入的数据中加一个唯一的批次号,然后在整个插入的过程中如果存在失败,则将刚才生成的批次号(可能有多个了)传到数据库执行delete操作,即可实现手动事务回滚。