O/R Mapping 中的N+1 select problem问题

假设对象A关联对象B,对应地, 表a 关联 表b(表b 外键参考 表a)

现在我们要把所有A和其对应的B 从数据库中翻出来

如果不用O/R Mapping,直接用SQL,则可以写一条连接两表的SELECT语句搞定
   
    select * from a join b on b.aId = a. aId


如果用O/R Mapping,实际生成的SQL可能是
 
     select * from a   (假设取出的a的ID分别是 1,2...n)
       select * from b where b.aId =  1
       select * from b where b.aId =  2
       ......
       select * from b where b.aId =  n
  
一共需要执行 n+1 条语句!

当然也不是所有的O/R Mapping框架中都有这个问题。比如Hibernate就可以通过HQL来避免.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值