问题描述:项目两个页面数据并不多查询时间却需要6s多,后面老师说是接口请求时间过长,需要优化
找到接口发现在foreach里有一个查询,也就是说循环几次就要到数据库查询几次,后面把这个查询修改并放到循环外面
原先代码
;
lists.forEach(item -> {
List<hourData> lists = hourService.list(Wrappers.
<hourData>.lambdaQuery().in(HourData::getCode,code))
List<hourData> data= lists.stream().filter(list1 ->
list1.equals(item)).collect(Collectors.toList());
... //循环体
});
更改后:
List<hourData> lists = hourService.list(Wrappers.
<hourData>.lambdaQuery().in(HourData::getCode,code)); //先查出数据
lists.forEach(item -> {
List<hourData> data= lists.stream().filter(list1 -> // 在数据里做筛选
list1.equals(item)).collect(Collectors.toList());
... //循环体
});