根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要select count(*) 呢?
无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count.
目前多数人的写法
多次 review 代码时,发现如现现象:
业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。普遍的SQL及代码写法如下
SQL写法:
Java写法:

是不是感觉很OK,没有什么问题
优化方案
推荐写法如下:
SQL写法:

Java写法:

SQL不再使用count,而是改用LIMIT 1,让数据库查询时遇到一条就返回,不要再继续查找还有多少条了
业务代码中直接判断是否非空即可
总结
根据查询条件查出来的条数越多,性能提升的越明显,在某些情况下,还可以减少联合索引的创建。
责任编辑人:CC
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
JAVA
+关注
关注
20文章
3012浏览量
116900 -
SQL
+关注
关注
1文章
807浏览量
46972
原文标题:SQL判断是否"存在",还在用 count 操作?很耗时的!
文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
如何通过注解来优化我们的Java代码
Java注解可以说是我们编码过程中最常用的。本篇文章将给大家介绍Java注解的概念、作用以及如何使用注解来提升代码的可读性和灵活性,并介绍如何通过注解来优化我们的Java
嵌入式SQL的相关资料分享
1嵌入式SQL嵌入式SQL是指将SQL语言嵌入到程序设计语言中,被嵌入得程序设计语言如C、C++、java等称为宿主语言预编译:由数据库管理系统得预处理程序队源程序进行扫描,识别出嵌入
发表于 11-09 06:24
如何使用Java Web防范SQL 注入攻击的资料说明
网络的广泛应用给社会带来极大便捷,网络安全特别是SQL 注入也成为了一个倍受关注的问题。与此同时,Java Web 由于其平台无关性、“一次编写、随处运行”,使得越来越多的程序员加入到Java 当中。本文在分析了
发表于 02-26 15:59
•12次下载
SQL告别count改用LIMIT 1
的count 目前多数人的写法 多次REVIEW代码时,发现如现现象:业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。普遍的SQL及
RushOrm将java类映射到SQL表来取代对SQL的需求
RushOrm 通过将 java 类映射到 SQL 表来取代对 SQL 的需求。 为什么要编写 RushOrm? 复杂的关系 - RushObjects 支持其他 RushObjects 的列表
发表于 04-13 09:59
•2次下载
JAVA8提供了Optional类来优化这种写法
这种写法是比较丑陋的,为了避免上述丑陋的写法,让丑陋的设计变得优雅。JAVA8提供了Optional类来优化这种写法,接下来的正文部分进行详细说明
SQL MySQL编写技巧:行与行比较的功能
实现简单,SQL 也能走索引,而且只查询一次数据库,感觉可行
只是:有点不好理解,因为我们平时这么用的少,所以这种写法看起来很陌生
另外,行行比较是 SQL 规范,不是某个关系型数据库的规范,也就说关系型数据库都应该支持这种
发表于 07-17 09:51
•795次阅读
什么是SQL注入?Java项目防止SQL注入方式
Java项目防止SQL注入方式
这里总结4种:
PreparedStatement防止SQL注入
mybatis中#{}防止SQL注入
对请求参数的敏感词汇进行过滤
ngin
发表于 10-16 14:26
•3327次阅读
insert into 语句的三种写法
INSERT INTO是MySQL中常用的一种SQL语句,用于将数据插入到表中。此文将详细介绍INSERT INTO语句的三种不同写法及其用途,并提供代码示例和相关解释。 正文: 一、基本插入
SQL错误代码及解决方案
在SQL数据库开发和管理中,常见的错误代码及其解决方案可以归纳如下: 一、语法错误(Syntax Errors) 错误代码 :无特定代码,但通常会在错误消息中明确指出是语法错误。 原因
SQL和Java的代码写法
评论