我这么两段代码:
1、
Query query = Dao.createQuery("from table");
list = query.list();
for(Table item : list){
Query query2 = Dao2.createQuery("select id from table2");
list = query2.list();
}
2、
Query query = Dao.createQuery("select t, (select id from table2) from table t");
list = query.list();
以上两段代码数据量相同
有这么几个疑惑:
1、这两端代码在创建连接的时间、连接数据库的时间、数据库连接数、数据库运行压力上有什么区别吗?
2、第一种是一直使用一个数据库连接还是会一直申请数据库连接呢?
3、第一种在不修改代码的情况下有可能通过Spring配置来优化性能吗?
------解决方案--------------------
差别会很大
第一个访问数据库 1*m次
第二个访问1次
------解决方案--------------------
一个事务中只会有一个Session,如果你是在一个事务中进行管理的,那么只有一个Session,当然,你会向数据库发起m次请求,因为你查询了m次