为了账号安全,请及时绑定邮箱和手机立即绑定

请教下前辈们关于For循环和IN查询哪种效率高一些?

请教下前辈们关于For循环和IN查询哪种效率高一些?

九州编程 2019-04-19 16:29:23
以下两个SQL语句:一:for(Orderorder:OrderList){orderService.delete(order.getId());}二:orderService.delete(orderIds);deletefromOrderwhereorder_idin{idr}
查看完整描述

2 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

一般来说是后者效率高一些。原因是这样:
多次执行语句,与数据库进行了多次交互,网络传输以及mysql解析和执行sql语句都需要处理多次;
for循环内执行sql语句会占用连接池连接,数据库连接池可能被耗尽。
ps:mybatis解析语句时间和数据库处理更为复杂语句的时间在这里几乎可以忽略不计。
                            
查看完整回答
反对 回复 2019-04-19
?
Helenr

TA贡献1780条经验 获得超3个赞

如果in的字段建了索引in也是会用到的,所以结果就如楼上所说使用for循环会多很多次query的过程,很多时间消耗在网络请求上面。一般做过代码分析的都知道,php其实并不会消耗太多时间,反而是网络请求消耗的时间较多。
                            
查看完整回答
反对 回复 2019-04-19
  • 2 回答
  • 0 关注
  • 1853 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信