吴小.州广
我一直有个问题?下
有没有对mybatis比较数据的
回应一下
问题:做一个通过ids删除数据的功能,是用for循环循环集合的id一条条删除好,还是使用mybatis的foreach标签查好,还是使用批量删除功能好
有知道的冒个泡讨论下
查阅n多资料,各有说法
..西江
删除不可以一次删多条数据?
id in (ids)
zζl0B04l.圳深
mybatis的foreach标签查好
呢天上不咋们你
可以啊! mybatis foreach
吴小.州广
一条条删可以放回你操作了的记录
放回一个int
用foreach标签是不会放回的
用foreach是在删除数据不是很多的情况下
in(。。。)内的限定是1000以内吧
吴小.州广
也不是很大
感觉好像两种结果没什么区别
但是使用for会发出多条语句
elimB.圳深
https://sanwen8.cn/p/15d21Ut.html
..西江
说实话,这样我真没觉得有什么好优化的,直接in
灵不灵不~东山
你可以在后台定义id的字段类型为string类型,然后sql中有in这个功能
吴小.州广
我不是很清楚使用for循环一条条操作还是使用foreach那个好
..西江
不需要for吧
你多选后的id拼成字符串不就得了
灵不灵不~东山
拼成字符串然后delete 。。。。in(id1,id2,id3)
..西江
占着线程不放
超过就分几次不就行了
一般勾选哪来那么多
或者在前台如果勾选超过多少就传没勾选的
吴小.州广
我看了挺多人评论的
有说查询时使用for一条条查好
有的说用in的好
..西江
我也听说in 不好,他们也给不出什么好方法
for,我第一个否决
吴小.州广
没有关联表
就是单表查询
现在你们想想,一个表数据上亿,单表根据id查一批数据
吴小.州广
mybatis的批量操作我测过
不快
那小一点
1000以内的
id1000条以内
吴小.州广
全选是3000条数据
对3000条数据做导出
导出已经感觉很优化了
就是在查的时候感觉不行
眼龙.州广
删除不是只是删除选择的嘛?一般分页都是10条,不都是选择10条删除的吗?
吴小.州广
最终觉得很是用foreach好
就是查询的
眼龙.州广
符合逻辑的就是删除每页的,一般10条,给个复选框,选择然后删除
眼龙.州广
用in吧,不过一次太大了就不行,in有限制的
吴小.州广
其实我个人感觉假如是删除几条数据
使用for循环可能会比foreach的好
因为使用in做比较在数据库查询方面是很慢的
吴小.州广
假如上百条感觉就用in了
这时用for循环的话发送了多条sql语句
也不知道分析对不对,想?下有做过这方面测试研究的人