性能调优及MyBatis开启batch模式

针对项目中性能调优总结有如下几条:

  1. 避免服务间的多次调用,可将多次修改为一次,对于查询业务,如业务不允许则可将业务数据进行缓存(代码或者redis进行缓存)。
  2. 服务间调用对于无需返回并且对数据准确性结果较弱的操作,尝试修改为异步,尽快释放连接。
  3. 修改操作及删除操作条件必须明确,避免单独使用主键,例如加上区划,年度,单位等。
  4. 禁止使用new Runable(), 使用线程必须使用线程池明确最小,最大线程数。
  5. 单次插入数据量特别大,字段特别多,业务的使用量
    具体写法如下图:
    image.png
    image.png
    image.png
@Autowired
private SqlSessionTemplate sqlSessionTemplate;
public void test(List insertList){
SqlSessionFactory sqlSessionFactory = sqlSessionTemplate.getSqlSessionFactory();
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
try {
    GlaBalanceDao blDao = sqlSession.getMapper(GlaBalanceDao.class);
    insertList.stream().forEach(bal->{
        blDao.insert(bal);
    });
    sqlSession.clearCache();
    sqlSession.commit();
}catch(Exception e){
    throw new RuntimeException(e);
}finally {
    sqlSession.close();
}
}

开启mybatis batch模式源码解析:
image.png
image.png
性能调优及MyBatis开启batch模式_第1张图片
image.png
image.png

你可能感兴趣的:(后端)