0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SQL和Java的代码写法

数据分析与开发 来源:CSDN技术社区 作者:CSDN技术社区 2020-10-21 10:35 次阅读

根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要select count(*) 呢?

无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count.

目前多数人的写法

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

业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。普遍的SQL及代码写法如下

SQL写法:

Java写法:

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

优化方案

推荐写法如下:

SQL写法:

Java写法:

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

业务代码中直接判断是否非空即可

总结

根据查询条件查出来的条数越多,性能提升的越明显,在某些情况下,还可以减少联合索引的创建。
责任编辑人:CC

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2904

    浏览量

    102998
  • SQL
    SQL
    +关注

    关注

    1

    文章

    738

    浏览量

    43465

原文标题:SQL判断是否"存在",还在用 count 操作?很耗时的!

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式SQL的相关资料分享

    1嵌入式SQL嵌入式SQL是指将SQL语言嵌入到程序设计语言中,被嵌入得程序设计语言如C、C++、java等称为宿主语言预编译:由数据库管理系统得预处理程序队源程序进行扫描,识别出嵌入
    发表于 11-09 06:24

    如何使用Java Web防范SQL 注入攻击的资料说明

    网络的广泛应用给社会带来极大便捷,网络安全特别是SQL 注入也成为了一个倍受关注的问题。与此同时,Java Web 由于其平台无关性、“一次编写、随处运行”,使得越来越多的程序员加入到Java 当中。本文在分析了
    发表于 02-26 15:59 12次下载
    如何使用<b class='flag-5'>Java</b> Web防范<b class='flag-5'>SQL</b> 注入攻击的资料说明

    使用java语言导入SQL到MySql的源代码免费下载

    本文档的主要内容详细介绍的是使用java语言导入SQL到MySql的源代码免费下载。
    发表于 09-23 16:38 3次下载
    使用<b class='flag-5'>java</b>语言导入<b class='flag-5'>SQL</b>到MySql的源<b class='flag-5'>代码</b>免费下载

    SQL告别count改用LIMIT 1

    的count 目前多数人的写法 多次REVIEW代码时,发现如现现象:业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。普遍的SQL
    的头像 发表于 07-26 10:57 1789次阅读

    嵌入式SQL

    1嵌入式SQL嵌入式SQL是指将SQL语言嵌入到程序设计语言中,被嵌入得程序设计语言如C、C++、java等称为宿主语言预编译:由数据库管理系统得预处理程序队源程序进行扫描,识别出嵌入
    发表于 11-04 09:21 17次下载
    嵌入式<b class='flag-5'>SQL</b>

    RushOrm将java类映射到SQL表来取代对SQL的需求

    RushOrm 通过将 java 类映射到 SQL 表来取代对 SQL 的需求。 为什么要编写 RushOrm? 复杂的关系 - RushObjects 支持其他 RushObjects 的列表
    发表于 04-13 09:59 2次下载

    JAVA8提供了Optional类来优化这种写法

    这种写法是比较丑陋的,为了避免上述丑陋的写法,让丑陋的设计变得优雅。JAVA8提供了Optional类来优化这种写法,接下来的正文部分进行详细说明
    的头像 发表于 04-24 15:18 853次阅读

    Mybatis的SQL注入审计的基本方法

    SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来越少。新手代码审计者往往对Java Web应用的多个框架组合而心生畏惧,不知
    的头像 发表于 10-17 11:16 992次阅读

    Java中如何解析、格式化、生成SQL语句?

    昨天在群里看到有小伙伴问,Java里如何解析SQL语句然后格式化SQL,是否有现成类库可以使用?
    的头像 发表于 04-10 11:59 608次阅读

    高逼格的SQL写法:行行比较

    同样是利用 Mybatis 的 动态 SQL ,将 business_id 列表拼在一起、 ware_inside_code 拼在一起,类似如下
    的头像 发表于 05-12 10:51 388次阅读
    高逼格的<b class='flag-5'>SQL</b><b class='flag-5'>写法</b>:行行比较

    基于JAVA+SQL电子通讯录带系统托盘(源代码及配置文档)

    基于JAVA+SQL电子通讯录带系统托盘(源代码及配置文档)
    发表于 06-09 16:07 0次下载

    SQL MySQL编写技巧:行与行比较的功能

    实现简单,SQL 也能走索引,而且只查询一次数据库,感觉可行 只是:有点不好理解,因为我们平时这么用的少,所以这种写法看起来很陌生 另外,行行比较是 SQL 规范,不是某个关系型数据库的规范,也就说关系型数据库都应该支持这种
    发表于 07-17 09:51 316次阅读
    <b class='flag-5'>SQL</b> MySQL编写技巧:行与行比较的功能

    sql怎么用代码创建数据库

    sql怎么用代码创建数据库 SQL是一种结构化查询语言,用于通过编程语言与数据库进行通信。它允许用户从数据库中检索、修改和删除数据。在本文中,我们将讨论如何使用SQL
    的头像 发表于 08-28 17:09 2239次阅读

    什么是SQL注入?Java项目防止SQL注入方式

    Java项目防止SQL注入方式 这里总结4种: PreparedStatement防止SQL注入 mybatis中#{}防止SQL注入 对请求参数的敏感词汇进行过滤 ngin
    发表于 10-16 14:26 235次阅读

    insert into 语句的三种写法

    INSERT INTO是MySQL中常用的一种SQL语句,用于将数据插入到表中。此文将详细介绍INSERT INTO语句的三种不同写法及其用途,并提供代码示例和相关解释。 正文: 一、基本插入
    的头像 发表于 11-21 14:18 2830次阅读