SQL查询数据是否存在的实现示例
根据某一条件从数据库表中查询是否有数据存在。
大多数时候,我们习惯性使用count。
count
大多数时候,我们在业务中会“肌肉记忆”,使用count来做这样的需求
mapper.xml中:
<select id="countBusinessNum" resultType="Integer"> SELECT COUNT(1) AS RESULT_NUM FROM TABLE_NAME WHERE COLUMN_A=1 </select>
后台逻辑中:
Integer resultNum = sqlMapper.countBusinessNum(); if (0 < resultNum){ //存在 }else{ //不存在 }
然而在实际运行中,这种查询依然会查询到所有的符合条件的结果,然后进行计数。
优化
mapper.xml中:
<select id="existOrNot" resultType="Integer"> SELECT 1 FROM TABLE_NAME WHERE COLUMN_A=1 LIMIT 1 </select>
后台逻辑中:
Integer exist = sqlMapper.existOrNot(); if (null != exist){ //存在 }else{ //不存在 }
使用 LIMIT 1,让数据库查询时遇到一条就返回,不再继续查找了。业务代码中直接判断是否非空即可。
总结
当原SQL查询结果中的返回数据条数越多的时候,性能优化效果越明显。
到此这篇关于SQL查询数据是否存在的实现示例的文章就介绍到这了,更多相关SQL查询数据是否存在内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
将MS SQL SERVER数据库运行在普通用户(独立用户)状态下的设置方法终结篇
最近接手了一台服务器,里面安装了sqlserver,为了安全考虑,我们将sqlserver在普通权限下运行,这样就不会因为sqlserver的自身安全问题,导致服务器成为肉鸡的危险。2010-05-05SQL Server中的Forwarded Record计数器影响IO性能的解决方法
这篇文章主要介绍了SQL Server中的Forwarded Record计数器影响IO性能的解决方法,需要的朋友可以参考下2014-07-07
最新评论