关于在for循环中执行sql语句效率的问题。
我们在项目中要用到批量删除的功能 ,我在项目中是这样写的:
String[] strArrayCheckIds = request.getParameterValues("checkid");
int iLength=strArrayCheckIds.length;
for(int i=0;i<iLength;i++){
//在这里我用执行了sql语句:delete from tablename where in=...的删除操作。
carService.delete(strArrayCheckIds[i]);
}
从以上可以看出,我的sql操作上放到for循环中的,也就是说如果我删除5条数据,那么,会连续执行5条sql的删除操作。
但是项目经理不让我那样写,说会影响效率,他让我用delete from tablename in(...)的方式来做。
以下是代码:
String petroId="0";
String[] strArrayCheckIds = request.getParameterValues("checkid");
int iLength=strArrayCheckIds.length;
for (int i = 0; i < iLength; i++){
petroId=petroId+","+strArrayCheckIds[i];
}
carPetroService.deleteByIds(petroId); //这里用delete from tablename where id in (....)的语法
return doList();
但是这种方法循环处理字符串,而用dele from tablname where id in(...)的语法来做的。但是这种sql的效率低啊。
哪种方法更好呢。效率上能差多少呢?
请高手指教!