猿问

循环查询数据库500次和用双层for循环进行25w次轮循哪个效率更高

有两张表A、B。
A有500条记录,B有500乃至更多条,查询A表所有记录封装成List;
现根据A表的ID查询B表中对应的记录,那么

List<A> listA = getObjects(A.class);
for(A a : listA){/*循环查询数据库*/
  B b= getObjectById(a.getId());
  map.put("A",a.name);
  map.put("B",b.time);
}
List<B> listB = getObjects(B.class);
for(A a : List<A>){
  for(B b : List<B>){
    if(a.getId() == b.getAid())
      map.put("A",a.name);
      map.put("B",b.time);
  }
}

这两种方式哪个效率高


胡子哥哥
浏览 1995回答 4
4回答

慕盖茨4494581

我觉得是第二种。如果单纯的是代码,那的确是第一种。但是,你第一种方式是循环访问数据库!而第二种只需一次访问!试问,你一个查询,要连续查询几百万次数据,这连接数真的无法想象。代价也是相当昂贵的!

aluckdog

显然是第一种高效,嵌套循环明显次数更多啊
随时随地看视频慕课网APP

相关分类

Java
我要回答