使用高效的sql语句代替count(*)

在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中都可以。

 

 

自己总结的方法。希望对大家有所帮助。

如果有什么错误。希望大家指正!

共同学习。一起进步!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值