日期:2014-05-19  浏览次数:20741 次

oracle删除,效率的问题
一个大约千条的数据,最多上万条

每个id大约有2个相同的,我要的是根据id做删除,我想了这3种方法删除。问下那种效率更高

1.直接获取每条id做删除
2.根据id查询看数据库中存在数据吗,存在数据删除,不存在不执行删除
3.先把id添加到一个list集合,再遍历集合中的id,进行删除

------解决方案--------------------
第二个,查询存在干嘛,反正删除的时候,已经有条件了,不符合条件就不删了
------解决方案--------------------
1.直接获取每条id做删除
不如使用批量删除 executeBatch();

2.感觉显得多余了、

3
取出数据库全部 放入set 去重 删除全部 保存set里数据


------解决方案--------------------
delete from xxx where id in (select xx_id from xxx where xxx)

一条sql搞定为甚要多条sql?
------解决方案--------------------
还有相同id的。。。。
------解决方案--------------------
怎么会有相同id的记录?难道没主键id??
------解决方案--------------------
探讨

怎么会有相同id的记录?难道没主键id??

------解决方案--------------------
对你的问题十分的不清晰。

你究竟是要删除 有重复的id?还是你手中已经有一组id,全部删除掉就行了?