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

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

3天内不再提示

SQL告别count改用LIMIT 1

数据分析与开发 来源:今日头条 作者:程序猿囧途 2021-07-26 10:57 次阅读

根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count

目前多数人的写法

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

##### SQL写法:

SELECT count(*) FROM table WHERE a = 1 AND b = 2

##### Java写法:

int nums = xxDao.countXxxxByXxx(params);

if ( nums 》 0 ) {

//当存在时,执行这里的代码

} else {

//当不存在时,执行这里的代码

}

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

优化方案

推荐写法如下:

SELECT 1 FROM table WHERE a = 1 AND b = 2 LIMIT 1

##### Java写法:

Integer exist = xxDao.existXxxxByXxx(params);

if ( exist != NULL ) {

//当存在时,执行这里的代码

} else {

//当不存在时,执行这里的代码

}

SQL不再使用count,而是改用LIMIT 1,让数据库查询时遇到一条就返回,不要再继续查找还有多少条了业务代码中直接判断是否非空即可

总结

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

编辑:jq

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

    关注

    1

    文章

    764

    浏览量

    44134

原文标题:SQL 查找是否"存在",别再 count 了!

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

收藏 人收藏

    评论

    相关推荐

    verilog计数器代码为什么要使用这句话if (count===8\'bxxxxxxxx)count=8\'b0000_0000;

    ; else if(count==8\'b1111_1111) count<=8\'b0000_0000; else count<=count+1; end endmodu
    发表于 12-21 14:49

    SQL错误代码及解决方案

    SQL数据库开发和管理中,常见的错误代码及其解决方案可以归纳如下: 一、语法错误(Syntax Errors) 错误代码 :无特定代码,但通常会在错误消息中明确指出是语法错误。 原因 :SQL语句
    的头像 发表于 11-19 10:21 1679次阅读

    常用SQL函数及其用法

    SQL 函数及其用法: 一、聚合函数(Aggregate Functions) 聚合函数对一组值执行计算,并返回单个值。 COUNT() 用途 :返回匹配指定条件的行数。 示例 : SELECT
    的头像 发表于 11-19 10:18 273次阅读

    SQL与NoSQL的区别

    在信息威廉希尔官方网站 领域,数据库是存储和管理数据的核心组件。随着互联网的发展和大数据时代的到来,对数据库的需求也在不断变化。SQL和NoSQL作为两种主流的数据库管理系统,各自有着独特的优势和应用场
    的头像 发表于 11-19 10:15 174次阅读

    大数据从业者必知必会的Hive SQL调优技巧

    不尽人意。本文针对Hive SQL的性能优化进行深入研究,提出了一系列可行的调优方案,并给出了相应的优化案例和优化前后的SQL代码。通过合理的优化策略和技巧,能够显著提升Hive SQL的执行效率和响应速度。 关键词: Hive
    的头像 发表于 09-24 13:30 267次阅读

    IP 地址在 SQL 注入攻击中的作用及防范策略

    数据库在各个领域的逐步应用,其安全性也备受关注。SQL 注入攻击作为一种常见的数据库攻击手段,给网络安全带来了巨大威胁。今天我们来聊一聊SQL 注入攻击的基本知识。 SQL 注入攻击的基本原理
    的头像 发表于 08-05 17:36 312次阅读

    恒讯科技分析:sql数据库怎么用?

    SQL数据库的使用通常包括以下几个基本步骤: 1、选择数据库系统: 选择适合您需求的SQL数据库系统,如MySQL、PostgreSQL、Microsoft SQL Server、SQ
    的头像 发表于 07-15 14:40 361次阅读

    什么是 Flink SQL 解决不了的问题?

    简介 在实时数据开发过程中,大家经常会用 Flink SQL 或者 Flink DataStream API 来做数据加工。通常情况下选用2者都能加工出想要的数据,但是总会有 Flink SQL
    的头像 发表于 07-09 20:50 313次阅读

    ESP-IDF V5.2使用pnct例程时得到的脉冲数总是为1是什么原因导致的?

    = EXAMPLE_PCNT_LOW_LIMIT; unit_config.intr_priority = 0; unit_config.flags.accum_count = 1; pcnt_unit_handle_
    发表于 06-06 06:43

    请问stm32cubeide怎么取ImageER_IROM1Limit?

    MDK的时候取image大小是用\"ImageER_IROM1Limit\"这样的,但是stm32cubeide用不了,大家有什么办法吗?谢谢
    发表于 05-29 06:03

    SQL全外连接剖析

    SQL中的全外连接是什么? 在SQL中,FULLOUTERJOIN组合左外连接和右外连接的结果,并返回连接子句两侧表中的所有(匹配或不匹配)行。接下面sojson给大家详细讲解。   图解:SQL
    的头像 发表于 03-19 18:28 2241次阅读
    <b class='flag-5'>SQL</b>全外连接剖析

    如何开始监控SQL Server环境?

    一些问题,但这既麻烦又低效,尤其是当您的环境中有许多SQL服务器时。 如果您使用监控工具,则需要有一个好的策略,这需要遵循一些经过验证的步骤。 第1步:发现SQL服务器 发现您需要监控的所有S
    的头像 发表于 02-28 17:25 401次阅读

    为什么需要监控SQL服务器?

    如今,大多数桌面、移动、云、物联网和其他应用程序都严重依赖数据库。为了支持这些,SQL Server部署、容量和工作负载不断增长。当这种情况发生时,企业需要确保数据系统满足所需的性能要求。 SQL
    的头像 发表于 02-19 17:19 474次阅读

    Ubuntu 20.04如何更改用户名

    产品简介本文适用于所有RK3568/RK3588平台产品在Ubuntu20.04系统上如何更改用户名,本文以IDO-EVB3588开发板为例,在ubuntu20.04系统上修改用户名industio
    的头像 发表于 01-26 08:34 853次阅读
    Ubuntu 20.04如何更<b class='flag-5'>改用</b>户名

    如何用Rust过程宏魔法简化SQL函数呢?

    这是 RisingWave 中一个 SQL 函数的实现。只需短短几行代码,通过在 Rust 函数上加一行过程宏,我们就把它包装成了一个 SQL 函数。
    的头像 发表于 01-23 09:43 962次阅读
    如何用Rust过程宏魔法简化<b class='flag-5'>SQL</b>函数呢?