数据量比较大,批量操作数据入库
耗时操作考虑异步处理
恰当使用缓存
优化程序逻辑、代码
SQL优化
压缩传输内容
考虑使用文件/MQ等其他方式暂存,异步再落地DB
跟产品讨论需求最恰当,最舒服的实现方式
优化前:
- //for循环单笔入库
- for(TransDetail detail:list){
- insert(detail);
- }
优化后:
- // 批量入库,mybatis demo实现
- <insert id="insertBatch" parameterType="java.util.List">
- insert into trans_detail( id,amount,payer,payee) values
- <foreach collection="list" item="item" index="index" separator=",">(
- #{item.id}, #{item.amount},
- #{item.payer},#{item.payee}
- )
- </foreach>
- </insert>