mysql count里面能加条件吗_select count(1) 和 count(*),哪个性能更好?

相信很多小伙伴都想了解 count(1) 和 count(*) 的性能问题 ,今天给大家做一下测试。

声明:本文使用MySql数据库,数据库表里面有100万条数据。

先测试 count(*)

b8d7f0e20893f539ecaecd9d2e44fe91.png

可以看出,count(*) 用时间差不多15s.

再测试 count(1)

8c739fea3bb73693473f5ce103a07359.png

看到这个数据,我知道很多小伙伴还是找不到心里的答案,上面的测试会不会存在一些客观原因,所以重启电脑后,重新测试一下 count(1)

12839335de32dfa67b55a1b05507b9fe.png

这次用时34s,是不是很惊讶?

下面看看在稳定状态下的性能对比

f8318427f5d55a880ead20874345b100.png

第一次 count(*) 5.49s
count(1) 5.11s

别着急,俗话都是三局两胜,五局三胜。

3054ed53e738854ade9ff86413d3fb1d.png

第二次 count(*) 4.86s count(1) 5.64s

bab43989f29fe7e946777d34a992d9db.png

第三次 count(*) 4.92s count(1) 4.39s

第一个总结

从上面的比较可以看出,count(*) count(1) 在没条件的情况下两者没有什么区别。

下面使用有条件的 select 进行对比

0b8460ec79603e6c2a103ea7abfc359d.png

对比了两次,可以看出count(*) 快于count(1), 下面来解释一下

count(1) 和count(*) 对比

如果你数据库没有主键,那么count(1) 比count(*) 快,

如果有主键作为条件count(),那么count(1) 比count(*) 快。

如果表里面只有一个字段,那么还是count(*)最快

count 解释

count(*) 返回表中所有存在行的总数,包括null

count(1) 返回的是去除null以外的所有行的总数,有默认值的也会被记录

感兴趣的同学,可以动手测试一下

三条经验

这个也是好久之前在网上看到的

  • 任何情况下select count(*) from table 是最优选择
  • 减少select count(*) from table where condition = ? 这样的查询
  • 杜绝 select count(colunm) from table

我目前是在职Java开发,如果你现在正在了解Java技术,想要学好Java,渴望成为一名Java开发工程师,在入门学习Java的过程当中缺乏基础的入门视频教程,你可以关注并私信我:01。我这里有一套最新的Java基础JavaSE的精讲视频教程,这套视频教程是我在年初的时候,根据市场技术栈需求录制的,非常的系统完整。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PDA 收银系统PDA手持打印扫描枪 销售开单 收银 扫描打印一体机

在零售方面也有很好的应用。如在一些高端品牌零售店,营业员可以随身导购,一站式完成了商品销售和收银,很是受消费者追捧,符合了企业对客户体验以及行业领先的追求。 PDA收银系统是一款多功能可以取代专业收银机的收银系统,适合各种…

如何获取投票提交地址_简单实用 | 2019全国医院擂台赛投票攻略(县域版)

作者:用户大当家2019改善医疗服务行动全国医院擂台赛案例征集环节结束。截止8月15日24时,城市组提交案例2196个,县域组提交案例1087个,总计3283个案例,数量再度创纪录。首先为积极改善医疗服务的您点赞。接下来&#x…

java 16 binary_【图片】【困扰】java(tm) platform se binary 已停止工作该如何是好【minecraft吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Completely ignored arguments: [--nativeLauncherVersion, 307][18:26:56] [Client thread/INFO]: Setting user: XXX[18:26:58] [Client thread/WARN]: Skipping bad option: lastServer:[18:26:58] [Client thread/INFO]: LWJGL…

菲尔兹奖数学家丘成桐:人工智能中的数学理论尚无很大突破

来源:机器人10月17日,在2019中关村论坛上,菲尔兹奖首位华人获得者、美国国家科学院院士、哈佛大学教授丘成桐发表主旨演讲。他呼吁国家应重视基础科学和数学的发展。一个国家的强大和长治久安,离不开强大的基础科学,没…

python定义类时括号_为什么在定义类时括号是可选的,而在定义函数时括号是必需的?...

我认为你的问题的答案只是语法。这正是Python的设置方式,但我对它的设置方式的看法是:我认为函数来自数学,比如:f(x) x所以当计算机编程语言被创造出来的时候,从模拟数学到编程语言似乎有某种逻辑上的连续性。另一方面…

java bean set_JavaBean自动生成get和set方法

android计算每个目录剩余空间丶总空间以及SD卡剩余空间ublic class MemorySpaceCheck { /** * 计算剩余空间 * param path * return */ public static String getAvail ...ionic+angularjs开发hybrid App(环境配置+创建测试项目)本文使用的…

从地心到宇宙,再到治疗癌症与“赋灵”智能,这届腾讯WE都聊了些啥?

来源:腾讯科学WE大会Hod Lipson这人是谁————哥伦比亚大学创意机器实验室主任,致力于开发机器人的创造力,让机器人拥有自己的思想和情感。说了些啥————大概100年来我们一直试图建造有自我意识的机器人,我们希望这些机器人…

复制文件,并重命名

总体思路:1. 先复制文件到指定目录下; 2. 根据需要,修改文件名称。 (1)复制文件 实现代码: 例如:把“D:\照片”目录下的文件复制到“D:\姓名”目录下。 /** * 描述:复制文件 到 目标…

python计算入门_Python入门教程02-01(计算机核心基础)

python入门课程第二章-计算机核心基础Python入门教程01-01(ATM购物车)学习过后,我们需要了解一下计算机的核心基础,目标就是为了让后面更好的理解python这门语言,更容易接受后续新的课程难点。下面我们来一起学习第二章吧~~~~一 引子:接下来一…

php字符串反转abcdefg_php中实现字符串翻转的方法

字符串:$str "abcdefg";方法一(直接使用php自带函数strrev($str))print_r(strrev($str));使用for循环方式,str_split($str)$newArrOne [];//初始化一个新的数组$newStrOne ;//初始化一个新的字符串$newArrOne str_split($str);$arrCount count($newArrOne);for …

RISC-V浪潮来袭!115页PPT超详论述,如何与ARM争锋!(一)

来源:芯潮近两年来,在ARM和Intel主导的竞争格局中,一个新的开源指令集架构RISC-V在芯片江湖声名鹊起。面对来势汹汹的AI和IoT浪潮,RISC-V提供了一种高能效低成本解决方案,吸引了谷歌、高通、IBM、镁光、西部数据、三星…

redisb并发访问慢出现的问题

最近项目一上线,就问题颇多,本地测试,ok,上线后,大用户量的时候,顶不住。用了一个礼拜的时间发现的问题,总结下来。 项目是netty4.0,reids2.8,nginx等框架。目前是4台proxy服务器&am…

python idle运行anaconda_在Python IDLE 下调用anaconda中的库教程

大家都知道,Anaconda是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。下载了anaconda我们可以很方便的随时调用这里面的库。原先我自己在Python官网下载了python 3.7开发环境,anaconda的后面下载的,…

php知识点_PHP那些琐碎的知识点(整理)

PHP不会检查单引号 字符串中变量内插或(几乎)任何转义序列,所以采用单引号这种方式来定义字符串相当简单快捷。但是,双引号 "" 则不然,php会检查字符串中的变量或者转义序列,并输出变量和转义序列的值。$a "123&…

有关军事混合智能的思考

来源:中国指挥与控制学会0引言随着深度学习、强化学习等新一代人工智能技术的发展,其在计算机视觉、语音识别、自然语言处理、生物医疗领域及游戏博弈等方面取得很大的突破,人工智能在军事领域应用也愈加广泛,催生了军事智能的概念…

nginx动静分离配置_Nginx 动静分离与负载均衡的实现

一、前提企业中,随着用户的增长,数据量也几乎成几何增长,数据越来越大,随之也就出现了各种应用的瓶颈问题。问题出现了,我们就得想办法解决,一般网站环境,均会使用LAMP或者LNMP,而我…

scala shuffle

val arr (0 to 100).map(_ * 1d) /// 下面这一步只能用to不能用until,scala里面实现返回的两个Range继承路径不同,不能混用 val a_shuffled util.Random.shuffle(0 to arr.size -1).map(arr(_)) 转载于:https://www.cnblogs.com/suanec/p/6043286.html…

计算机、数学、运筹学等领域的32个重要算法

来源: 必达智库奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家&am…

Fibonacci(求前四位数)

FibonacciTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uDescription2007年到来了。经过2006年一年的修炼,数学神童zouyu终于把0到100000000的Fibonacci数列 (f[0]0,f[1]1;f[i] f[i-1]f[i-2](i>2))的值全部给背了下来。 接…

fiddler如何设置过滤https_手把手教你如何给网站设置https

我也是小白一枚,最近开了一个博客站点,个人博客除了微信分享功能不能开通外,其他的功能我都要试着做一下,磨练磨练自己。跟一些大佬分享有所不同,我这篇文章是以一个小白的角度来写,这样有一个优势&#xf…