SQL查找是否存在,别再count了!
点击上方蓝色“方志朋”,选择“设为星标”
回复“666”获取独家整理的学习资料!
来源:http://suo.im/5T1tGv
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写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
,让数据库查询时遇到一条就返回,不要再继续查找还有多少条了
业务代码中直接判断是否非空即可
总结
根据查询条件查出来的条数越多,性能提升的越明显,在某些情况下,还可以减少联合索引的创建。
昨晚逛GitHub,无意中看到一位大佬(https://github.com/halfrost
)的算法刷题笔记,感觉发现了宝藏!有些小伙伴可能已经发现了,但咱这里还是忍不住安利一波,怕有些小伙伴没有看到。
关于算法刷题的困惑和疑问也经常听朋友们提及。这份笔记里面共包含作者刷LeetCode算法题后整理的数百道题,每道题均附有详细题解过程。很多人表示刷数据结构和算法题效率不高,甚是痛苦。有了这个笔记的总结,对校招和社招的算法刷题帮助之大不言而喻,果断收藏了。
需要刷题笔记PDF文档的小伙伴可以直接长按扫码关注下方二维码,回复 「刷题笔记」 四个字自取:
关注下方公众号
????????????
回复关键字「刷题笔记」,即可下载
笔记版权归原作者所有,转载请注明出处 https://books.halfrost.com/leetcode/
SQL查找是否存在,别再count了!相关推荐
- SQL 查找是否“存在“,别再count了
你们查询数据库表中存不存在的某条数据的时候,是不是还在用select count(*) 普通写法 #### SQL写法: SELECT count(*) FROM table WHERE a = 1 ...
- SQL查找是否存在,别再count了,很耗费时间的
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:http://suo.im/5T1tGv 根据某一条件从数据 ...
- SQL 查找是否存在,别再 COUNT 了,很耗费时间的
点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写 ...
- idea怎么看sql执行打印_SQL查找是否quot;存在quot;,别再count了,很耗费时间的
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢? 无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的 ...
- 数据库优化:SQL 查找是否存在,别再 count 了,很耗费时间的!
目前多数人的写法 优化方案 总结 根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢? 无论是刚入道的程序员新星,还是精湛沙 ...
- SQL 查找是否存在,别再 count 了,很耗费时间的!
作者:程序猿囧途 来源:toutiao.com/i6826511837840802315 根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT co ...
- SQL 查找重复记录
SQL 查找重复记录 CREATE TABLE product ( ID INT IDENTITY(1,1) PRIMARY KEY NOT NULL, Pid INT NOT NULL, Pn ...
- 老问题,SQL保存图片。保存以后再读出来,发现stream的大小不一致。虽然老,但没搜到结果。...
老问题,SQL保存图片.保存以后再读出来,发现stream的大小不一致.虽然老,但没搜到结果. Delphi / Windows SDK/API http://www.delphi2007.net/D ...
- 【MySQL】基于MySQL的SQL优化(二)——对count()、max()的优化
*本文章使用数据均来自MySQL样本数据库Sakila,参考:https://blog.csdn.net/tanglei6636/article/details/93042010 max(): 通过一 ...
最新文章
- EOS与以太坊有哪些区别? 1
- python手机连续点击脚本_selenium+python自动化86-循环点击遇到的坑
- mysql工具使用意义_MySQL性能分析、及调优工具使用详解
- yum lock 解决方法
- 安装开源项目 MultiType (基于 RecyclerView)出现的各种问题 -- 自己的第一篇博客...
- MDK4 如何生成bin文件
- 双系统引导修复失败进不了系统_教你安装双系统,win7+win10
- LeetCode(122)——买卖股票的最佳时机 II(JavaScript)
- thinkcmf apache rewrite文件
- 4.7 ResNet CNN、tensorflow实现——python实战
- show tables mysql_MySQL_解析MYSQL显示表信息的方法,在用mysql时(show tables),有时候 - phpStudy...
- 【CSDN软件工程师能力认证学习精选】Python网络编程之初识
- hill密码 java_希尔密码(Hill Cipher)的实现
- H5调用手机摄像头和相册更换头像
- win32面试题总结
- 谁动了我的奶酪佳句欣赏
- 新技能get√​10个PS加速小技巧让你的PS不再卡
- HTML水平垂直居中的四种方式
- 【技巧】Vivado 仿真器simulation显示模拟波形图(非数字波形)
- BuChain 介绍:视屏讲解