当前位置: 首页 > news >正文

SQL查找是否存在,别再count了! - DAYTOY

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

1 目前多数人的写法

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

1.1 SQL写法

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

1.2 Java写法

int nums = xxDao.countXxxxByXxx(params);
if ( nums > 0 ) {
  //当存在时,执行这里的代码else {
  //当不存在时,执行这里的代码
}

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

2 优化方案

推荐写法如下:

2.1 SQL写法

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

2.2 Java写法

Integer exist = xxDao.existXxxxByXxx(params);
if ( exist != NULL ) {
  //当存在时,执行这里的代码else {
  //当不存在时,执行这里的代码
}

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

3 总结

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

原文链接:https://mp.weixin.qq.com/s/25sl0T1B7CKCSpu6CuRARw

http://www.sczhlp.com/news/97162/

相关文章:

  • 网站后台安全上海公司电话
  • 网站建设如何选择域名做设计去哪些网站下载素材
  • 网站上线准备网站编程语言排行榜
  • 互联网电商网站建设贵州高端网站建设
  • 怎么制作网站模版酒店网站 方案
  • Cursor小程序实战系列二:如何从原型界面到小程序界面
  • Cursor小程序实战系列三: 前后端对接保姆级拆解
  • 课前问题思考2
  • Cursor小程序实战四:如何让AI写好后端代码
  • 做网站需要知道优化吗做电子相册的大网站
  • 洛阳制作网站的公司济南手机建站价格
  • 福建建设中心网站北京产品网站建设
  • 网站统计查询网站的登录界面是怎么做的
  • 网上接单做网站松阳县建设局网站
  • 北京网站设计十年乐云seo中信建设有限责任公司资质等级
  • asp.net 价格查询网站网站站内结构优化
  • 网站推广新手入门教程永诚网络
  • 长治网站建设培训文件手机建个人网站
  • Web 3
  • Cursor小程序实战系列一:0到1开发一个小程序,需求整理、小程序注册备案
  • 深入解析:MySQL 数据类型与运算符详解
  • 【前端Vue】如何优雅地在vue中引入ace-editor编辑器 - 指南
  • USACO08 OPEN Roads Around the Farm S (递归)
  • 怎么租服务器做网站网站服务器去哪买的
  • 网站开发具备知识有哪些免费网站制作视频教程
  • 做的烂的大网站网站建设的技能有哪些方面
  • 网站移动排名开发一个app需要多少时间
  • 网站关键词描述东莞公司网站价格
  • 手机网站出现广告专业移动微网站设计
  • 可以做微课PPT模板 网站室内设计联盟官网app