点击上方“朱小厮的博客”,选择“设为星标”

后台回复"书",获取

根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写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,没有什么问题

优化方案

推荐写法如下:

##### SQL写法:
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,让数据库查询时遇到一条就返回,不要再继续查找还有多少条了

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

想知道更多?描下面的二维码关注我

后台回复"技术",加入技术群

【精彩推荐】

  • 原创|OpenAPI标准规范

  • 如此简单| ES最全详细使用教程

  • ClickHouse到底是什么?为什么如此牛逼!

  • 原来ElasticSearch还可以这么理解

  • 面试官:InnoDB中一棵B+树可以存放多少行数据?

  • 微服务下如何解耦?对于已经紧耦合下如何重构?

  • 如何构建一套高性能、高可用、低成本的视频处理系统?

  • 架构之道:分离业务逻辑和技术细节

  • 星巴克不使用两阶段提交

点个赞+在看,少个 bug ????

SQL 查找是否存在,别再 COUNT 了,很耗费时间的相关推荐

  1. SQL 查找是否“存在“,别再count了

    你们查询数据库表中存不存在的某条数据的时候,是不是还在用select count(*) 普通写法 #### SQL写法: SELECT count(*) FROM table WHERE a = 1 ...

  2. SQL查找是否存在,别再count了,很耗费时间的

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:http://suo.im/5T1tGv 根据某一条件从数据 ...

  3. idea怎么看sql执行打印_SQL查找是否quot;存在quot;,别再count了,很耗费时间的

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

  4. 数据库优化:SQL 查找是否存在,别再 count 了,很耗费时间的!

    目前多数人的写法 优化方案 总结 根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢? 无论是刚入道的程序员新星,还是精湛沙 ...

  5. SQL 查找是否存在,别再 count 了,很耗费时间的!

    作者:程序猿囧途 来源:toutiao.com/i6826511837840802315 根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT co ...

  6. SQL查找是否存在,别再count了!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:http://suo.im/5T1tGv 根据某一条 ...

  7. SQL 查找重复记录

    SQL 查找重复记录 CREATE TABLE product (  ID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,  Pid INT NOT NULL,  Pn ...

  8. 老问题,SQL保存图片。保存以后再读出来,发现stream的大小不一致。虽然老,但没搜到结果。...

    老问题,SQL保存图片.保存以后再读出来,发现stream的大小不一致.虽然老,但没搜到结果. Delphi / Windows SDK/API http://www.delphi2007.net/D ...

  9. 【MySQL】基于MySQL的SQL优化(二)——对count()、max()的优化

    *本文章使用数据均来自MySQL样本数据库Sakila,参考:https://blog.csdn.net/tanglei6636/article/details/93042010 max(): 通过一 ...

最新文章

  1. mysql模糊查询的优化方法--亲自实践
  2. ORACLE TEXT LEXER PREFERENCE(三)
  3. Linux中硬盘转速查看
  4. python(33)多进程和多线程的区别
  5. python深拷贝一个对象_Python中的深拷贝和浅拷贝以及存在的问题
  6. cmake 在安装mysql_cmake安装mysql
  7. 片段中的findViewById
  8. 201903版的idea markdown无法预览的问题
  9. springBoot微信支付(native)基本使用
  10. 如何采集企业信息公示系统
  11. 手把手教你如何建立U盘免疫文件夹
  12. 集成 React Native 到现有Android项目
  13. siebel基础配置
  14. symbian学习笔记
  15. 国密Fabric-ca集群负载均衡
  16. 带你玩东方外传系列一 ~ 十游戏链接
  17. gantt/甘特图完整代码(带注释,可以复制)
  18. Import Legacy CCSv3.3 Project到CCS5.5.0时出错
  19. 结对编程java实现四则运算(张铭 吴昊)
  20. datagirdview的单元格双击事件

热门文章

  1. 两个iphone怎么大量传照片_手机照片删除了怎么恢复?这两个简单方法一看就会,还不收藏?...
  2. Linux—系统文件和目录介绍
  3. Linux下区分物理CPU、逻辑CPU和CPU核数
  4. FortiGate设置E-mail告警
  5. 光伏发电项目将全面摸底复核
  6. Web应用安全--攻防对抗发展趋势
  7. 第一个冲刺期的第九天
  8. 一段人人都应该知道的从Vue到React的过渡史
  9. Oracle 创建主键自增表
  10. linux和windows文件名称长度限制