sqlcount函数转化为数值型(SQL判断是否"存在",还在用 count 操作?很耗时的!)
类别:数据库 浏览量:2044
时间:2021-10-03 01:24:44 sqlcount函数转化为数值型
SQL判断是否"存在",还在用 count 操作?很耗时的!根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写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,让数据库查询时遇到一条就返回,不要再继续查找还有多少条了
业务代码中直接判断是否非空即可
总结
根据查询条件查出来的条数越多,性能提升的越明显,在某些情况下,还可以减少联合索引的创建。
到此这篇关于SQL判断是否"存在",还在用 count 操作?很耗时的!的文章就介绍到这了,更多相关SQL判断是否"存在"内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- sql查询数据库前五条信息(SQL查询数据库中符合条件的记录的总数)
- sql查询地址中包含某个字段(SQL查询字段被包含语句)
- sqlserver常用的字符串函数(SqlServer 获取字符串中小写字母的sql语句)
- mysql统计函数详解(浅析MySQL的基数统计)
- mysql新增字段并添加备注(mysql添加备注信息的实现)
- mysql六大锁解析(MySQL 锁的相关知识总结)
- mysql的存储性能优化(MySQL的查询缓存和Buffer Pool)
- mysql删除的delete怎么找回(MySQL Delete 删数据后磁盘空间未释放的原因)
- sparksql项目实战(Spark SQL的整体实现逻辑解析)
- mysql binlog日志位置(开启MySQL的binlog日志的方法步骤)
- sqlserver如何生成xml文件(实现SQL Server 原生数据从XML生成JSON数据的实例代码)
- mysql与oracle体系结构(详解MySQL实时同步到Oracle解决方案)
- SQL Server ltrimrtrim函数的用法(SQL Server ltrimrtrim 去不掉空格的原因分析)
- 如何查看mysql执行计划(到底什么是Mysql执行计划?)
- c#中SqlBulkCopy的使用
- sql function函数的用法(SQl Function 创建函数实例介绍)
- 写信告诉我今天海是什么颜色(写信告诉我今天海是什么颜色回答)
- 英语难学吗(法语比英语难学吗)
- 今天要吃什么(今天要吃什么菜好)
- 网红直播可以赚很多钱吗(网红直播可以赚很多钱吗)
- 今天是什么日子(今天是什么日子有什么特殊意义吗)
- 这里输入关键词(怎么输入关键词搜索)
热门推荐
- java连接mongodb(Docker连接mongodb实现过程及代码案例)
- harbor镜像仓库扫描原理(Harbor搭建Docker私有仓库的实现方法)
- windowsserver2008部署php项目(win2008 r2 服务器环境配置FTP/ASP/ASP.Net/PHP)
- python try高级用法(python try 异常处理史上最全)
- centos搭建sftp服务器(Linux云服务器搭建SFTP服务器图片服务器的操作)
- dedecms栏目静态化(dedecms TAG标签按栏目显示的方法)
- opencv怎么设置图像形态(OpenCV图像颜色反转算法详解)
- sqlserver常用数据结构图(Sql Server数据库常用Transact-SQL脚本推荐)
- sqlserver2016的安装(Sql Server2016 正式版安装程序图解教程)
- mac的mysql连接问题如何解决(MAC 中mysql密码忘记解决办法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9