在oracle的实际开发中。当判断某个数据在表中是否存在的时候
一般都是用
select count(*) from tb_test where ....
在判断 count(*) >=0
使用这种方法先要查询出结果。然后再对结果进行统计。很浪费时间
这种方法在小数据量的时候速度很快。但是当遇到大数据量的时候。测试了下。当超过150W+记录的时候。第一次执行这条语句用了2S。
这里推荐使用另外一种方法。
判断数据在表中是否存在
如下:
select 1 from tb_test a where exists
(select 1 from tb_test b where
条件
) and rownum<1
使用这种方法时候当遇到满足条件的数据的时候就会直接返回1 。不满足返回空值
在150W数据的时候速度是0.01s左右
当然。如果是小数据量的时候。就无所谓了
2中都可以。
自己总结的方法。希望对大家有所帮助。
如果有什么错误。希望大家指正!
共同学习。一起进步!