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判断是否"存在"内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- mysql update 多个字段(mysql update case 更新字段值不固定的操作)
- mysql用户登录命令(mysql的登陆和退出命令格式)
- sqlserver安装日志文件夹(SQL SERVER日志进行收缩的图文教程)
- sqlserver2008收缩数据文件(SQL2008 详解直接将XML存入到SQL中)
- Mysql中CONCAT、CONCAT_WS字符串拼接函数
- mysql千万级别数据查询优化(mysql千万级数据量根据索引优化查询速度的实现)
- mysql中的null是什么(浅谈为什么Mysql数据库尽量避免NULL)
- mysql8.0使用(MySQL 8.0新特性 — 检查性约束的使用简介)
- mysql安装详解(MySQL Router的安装部署)
- sql统计天数怎么算(SQL对数据进行按月统计或对数据进行按星期统计的实例代码)
- sqlserver备份还原地址(SqlServer高版本数据备份还原到低版本)
- SQLServer获取临时表所有列名或是否存在指定列名的方法(SQLServer获取临时表所有列名或是否存在指定列名的方法)
- mysql操作时间的函数(一篇文章搞定Mysql日期时间函数)
- mysql权限收回(MySQL如何利用DCL管理用户和控制权限)
- SQL Server无法连接远程数据库的解决方法
- 如何找到mysqlroot密码(WDCP管理面板忘记MYSQL ROOT密码及重置后台登录密码的方法汇总)
- 今天要吃什么(今天要吃什么菜)
- 三杨之一 南杨 杨溥 安贞履节,酿醴调羹,宰相之气(三杨之一南杨杨溥)
- 今天会下雨吗(今天会下雨吗小说)
- 追连续剧,品古今联4 明代三杨,联妙诗佳(追连续剧品古今联4)
- 三杨 共辅四朝帝王,构建明帝国内阁行政圈(三杨共辅四朝帝王)
- 红色文化进国企(红色文化进国企)
热门推荐
- sqlserver备份整表数据的语句(SqlServer批量备份多个数据库且删除3天前的备份)
- sql server 管理日志可以删除吗(SQL Server查看login所授予的具体权限问题)
- Extjs updateProgress进度条的应用
- 在python中导入模块有哪几种方式(Python不同目录间进行模块调用的实现方法)
- dedecms栏目列表(dedecms子栏目中调用其顶级栏目名称和简介的方法)
- php返回数组值最大的键(PHP实现通过二维数组键值获取一维键名操作示例)
- js如何访问xml
- 微信小程序ui聊天窗口(微信小程序实现简单聊天室)
- 阿里云服务器防御(阿里云服务器攻击超过云盾防御阀值应该怎么办?)
- python获取json结果保存文本(Python JSON格式数据的提取和保存的实现)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9