意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

SQL查找怎么优化

来源:恒创科技 编辑:恒创科技编辑部
2024-02-01 03:13:59

这篇文章主要讲解了“SQL查找怎么优化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL查找怎么优化”吧!

目前多数人的写法

多次REVIEW代码时,发现如现现象:

业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。普遍的SQL及代码写法如下
##### SQL写法:
SELECTcount(*) FROM table WHERE a=1AND b =2

##### Java写法:
intnums = xxDao.countXxxxByXxx(params);
if( nums >0) {
//当存在时,执行这里的代码
}else{
//当不存在时,执行这里的代码
}

是不是感觉很OK,没有什么问题

优化方案


SQL查找怎么优化

推荐写法如下:

##### SQL写法:
SELECT1FROM table WHERE a =1ANDb =2LIMIT1
##### Java写法:
Integer exist = xxDao.existXxxxByXxx(params);
if( exist !=NULL) {
//当存在时,执行这里的代码
}else{
//当不存在时,执行这里的代码
}

SQL不再使用count,而是改用LIMIT 1,让数据库查询时遇到一条就返回,不要再继续查找还有多少条了

COUNT()有两个非常不同的作用:它可以统计某个列值的数量,也可以统计行数。在统计列值时要求列值是非空的(不统计NULL)。如果在COUNT()的括号中定了列或者列表达式,则统计的就是这个表达式有值的结果数。......COUNT()的另一个作用是统计结果集的行数。当MySQL确认括号内的表达式值不可能为空时,实际上就是在统计行数。最简单的就是当我们使用COUNT(*)的时候,这种情况下通配符*并不像我们猜想的那样扩展成所有的列,实际上,他会忽略所有列而直接统计所有的行数。

感谢各位的阅读,以上就是“SQL查找怎么优化”的内容了,经过本文的学习后,相信大家对SQL查找怎么优化这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是恒创,小编将为大家推送更多相关知识点的文章,欢迎关注!

上一篇: 云计算中扫描文件该怎么上传到云端 下一篇: 手机怎么远程登录云服务器?