count(1)、count(*)与count(列名)的执行区别

https://blog.csdn.net/ifumi/article/details/77920767

 

文章评论

写评论

毛冰封: 到位

1个月前 #2楼

Groovy Java: 很好,学习了。

2个月前 #1楼

count(1)、count(*)与count(列名)的执行区别

2017年09月10日 11:04:17 BigoSprite 阅读数:32166

 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/iFuMI/article/details/77920767

执行效果:

 

1.  count(1) and count(*)

当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了! 

从执行计划来看,count(1)和count(*)的效果是一样的。 但是在表做过分析之后,count(1)会比count(*)的用时少些(1w以内数据量),不过差不了多少。 

 

如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。 

因为count(*),自动会优化指定到那一个字段。所以没必要去count(1),用count(*),sql会帮你完成优化的 因此:count(1)和count(*)基本没有差别! 

 

2. count(1) and count(字段)

两者的主要区别是

(1) count(1) 会统计表中的所有的记录数,包含字段为null 的记录

(2) count(字段) 会统计该字段在表中出现的次数,忽略字段为null 的情况。即不统计字段为null 的记录。 

转自:http://www.cnblogs.com/Dhouse/p/6734837.html

 

 

count(*) 和 count(1)和count(列名)区别  

 

执行效果上:  

count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL  
count(1)
包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL  
count(列名)
只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数,即某个字段值为NULL时,不统计


执行效率上:  
列名为主键,count(列名)会比count(1)快  
列名不为主键,count(1)会比count(列名)快  
如果表多个列并且没有主键,则 count(1) 的执行效率优于 count(*)  
如果有主键,则 select count(主键)的执行效率是最优的  
如果表只有一个字段,则 select count(*)最优。

转自:http://eeeewwwqq.iteye.com/blog/1972576

 

实例分析

 


 
  1. mysql> create table counttest(name char(1), age char(2));

  2. Query OK, 0 rows affected (0.03 sec)

  3.  
  4. mysql> insert into counttest values

  5. -> ('a', '14'),('a', '15'), ('a', '15'),

  6. -> ('b', NULL), ('b', '16'),

  7. -> ('c', '17'),

  8. -> ('d', null),

  9. ->('e', '');

  10. Query OK, 8 rows affected (0.01 sec)

  11. Records: 8 Duplicates: 0 Warnings: 0

  12.  
  13. mysql> select * from counttest;

  14. +------+------+

  15. | name | age |

  16. +------+------+

  17. | a | 14 |

  18. | a | 15 |

  19. | a | 15 |

  20. | b | NULL |

  21. | b | 16 |

  22. | c | 17 |

  23. | d | NULL |

  24. | e | |

  25. +------+------+

  26. 8 rows in set (0.00 sec)

  27.  
  28. mysql> select name, count(name), count(1), count(*), count(age), count(distinct(age))

  29. -> from counttest

  30. -> group by name;

  31. +------+-------------+----------+----------+------------+----------------------+

  32. | name | count(name) | count(1) | count(*) | count(age) | count(distinct(age)) |

  33. +------+-------------+----------+----------+------------+----------------------+

  34. | a | 3 | 3 | 3 | 3 | 2 |

  35. | b | 2 | 2 | 2 | 1 | 1 |

  36. | c | 1 | 1 | 1 | 1 | 1 |

  37. | d | 1 | 1 | 1 | 0 | 0 |

  38. | e | 1 | 1 | 1 | 1 | 1 |

  39. +------+-------------+----------+----------+------------+----------------------+

  40. 5 rows in set (0.00 sec)

 

额外参考资料:http://blog.csdn.net/lihuarongaini/article/details/68485838

 

 

 

【mysql】count(*),count(1)与count(column)区别

阅读数 1246

转自: https://www.cnblogs.com/CareySon/p/DifferenceBetweenCountStarAndCount1.html  在SQLServer中Count(*)...博文来自: 我的博客

sql语句中count(*),count(1),count(id)区别详解

阅读数 1.8万

1.前言相信大多数有一定经验的phper都碰到过这个问题,count(*)和count(1),以及count('id')列有什么区别呢,这三者到底有什么不同呢,今天我将为此做深层的剖析,各位猿友们,注...博文来自: 程序员----杨丁的博客

count(1) AND count(*) 对比

阅读数 342

相信很多小伙伴都想知道count(1)和count(*)的速度问题,今天我给大家做一下测试。我这里测试的是MySql数据库声明:测试之前我数据库表里面有100万条数据。我们先来测试count(*)可以...博文来自: yuan_ren_sheng的博客

 

count(1)count(*)count(columnname)区别

阅读数 58

1.内容count(1),所有行都用1代替,统计行数count(*)所有行数包括NULLcount(columnname)columnname非NULL的行数2.速度列名为主键,count(列名)优于...博文来自: yangwenlei222的博客

SQL语句中count(1)和count(*)的区别

阅读数 2.9万

最近使用count函数比较多,当要统计的数量比较大时,发现count(*)花费的时间比较多,相对来说count(1)花费的时间比较少。查了一些文档有以下的说法:如果你的数据表没有主键,那么count(...博文来自: wscrf的博客

mysql:Count(*)与Count(1)、Count(2)、Count(‘anything’)及Count(字段)区别

阅读数 182

一:Count(*)、Count(1)、Count(543)或者无论Count(‘anything’)只要在Count中指定非NULL表达式,结果没有任何区别。因此当你指定Count(*)或者Coun...博文来自: qq_27127145的博客

数据库count(*)和count(1)的区别

阅读数 2021

一般情况下selectcount(*)与selectcount(1)两者返回的结果一致。但是针对表中主键的有无,情况会有不同。无主键:count(1)比count(x)快有主键:count(主键)最快...博文来自: 现役码农的博客

select count (1) 与select count(*)区别

阅读数 321

count(1),其实就是计算一共有多少符合条件的行。1并不是表示第一个字段,而是表示一个固定值。其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1。同理...博文来自: budaoweng0609的博客

count(1)/count(*)/count(列)等性能比较

阅读数 189

测试环境:oracle11g一:先看count(*)与count(列)--场景1:不存在空值,不建索引,object_id属性可为空;droptabletpurge;createtabletassel...博文来自: u011165335的博客

count1

阅读数 252

★实验任务Uuirs在玩一个游戏,由于这游戏很好玩,她不禁玩了n次,得到了n个分数。在玩的过程当中,她每得到一个分数时,都想知道当前共有几次得到这个分数(包含本次)。但是她发现自己脑袋不够用,于是希望...博文来自: 独自远行

XVII丶B关注

XVII丶B

 

39篇文章

排名:千里之外

 

jason15919882622关注

jason15919882622

 

110篇文章

排名:千里之外

 

aprilangela关注

aprilangela

 

17篇文章

排名:千里之外

 

haiross关注

haiross

 

1547篇文章

排名:90

 

HttpClient通过Post方式发送Json数据

阅读数 11.1万

服务器用的是Springmvc,接口内容: @ResponseBody @RequestMapping(value="/order",method=RequestMethod.POST) public...博文来自: majian_1987的专栏

count(1),count(*)和count(列名)三者的区别

阅读数 647

执行效果上:count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULLcount(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULLcount(列...博文来自: 路漫漫其修远兮,吾将上下而求索。

sql语句中count(*)与count(1)以及count(字段名)的异同点

阅读数 848

相同点:         在selectcount(*/1/字段名)fromtableName中都是用来统计表的数据量的,也就是这张表中有多少条数据。不同点:          count(*)与co...博文来自: 路漫漫何其远兮,踽踽而独行

SQL count详细用法

阅读数 1.5万

返回单一值的函数称做聚集函数(aggregatefunction)。通过应用程序访问下列聚集函数的结果时,包含结果的“字段名”就是你所使用的实际函数。例如,在分析你的数据库结果时,结果数组的键值可能如...博文来自: qq280929090的专栏

微服务Springcloud超详细教程+实战(九)

阅读数 2.9万

如在文档中遇到什么问题请联系作者QQ:1172796094本人正在找深圳Java实习工作,求大佬带飞——————————————————————————————————————八在审核中,请见谅Eur...博文来自: weixin_41838683的博客

查询数量 简单分析count(1) count(*)以及count(column)的区别

阅读数 590

count(*)count(1)是表示整个结果集有多少条记录不论是否为空1就是一个固定值,查询有多少符合条件的行数,*一般代指,所以一般查询时会再翻译一下,但总的来说差别不太大count(column...博文来自: 月清剑影的博客

count(*) 和 count(1)和count(列名)区别

阅读数 1656

执行效果上:count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULLcount(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULLcount(列...博文来自: 精彩人生

COUNT(*)与COUNT(列名)的区别

阅读数 1570

COUNT(*)与COUNT(列名)的区别   以前一直没有留意到COUNT(*)与COUNT(列名)的区别,昨天晚上无意中看到数据库系统工程师教程里面的一句话."如果null参与聚集运算,则除cou...博文来自: 心灵的流放地, 共同的精神家园

对于SQL中COUNT(1)和COUNT(*)执行效率上的误解

阅读数 2007

转自:http://blog.itpub.net/26736162/viewspace-2136339/如题,SQL中COUNT(1)和COUNT(*)执行效率的高低,说法不一。不过本人认为二者执行效...博文来自: 旺旺的博客

SQLSERVER 里SELECT COUNT(1) 和SELECT COUNT(*)哪个性能好?

阅读数 624

原文:https://www.cnblogs.com/lyhabc/p/3376222.htmlSQLSERVER里SELECTCOUNT(1)和SELECTCOUNT(*)哪个性能好?今天遇到某人在...博文来自: xuefeiliuyuxiu的专栏

count(*)、count(1)和count列名)的区别

阅读数 162

count(*)、count(1)和count(列名)的区别 1、执行效果上:  l count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL l count(1)包括了忽...

count(*),count(1)和count(字段)的区别

阅读数 324

之前在写sql语句时,常常使用count(*)来执行查询数据条数,也使用过count(字段)来针对某一特殊字段进行查询,今天接触到了count(1)也可以用来进行数据统计,下来查看资料,对它们有了一定...博文来自: sunroyfcb的博客

SQL里的count(*)、count(1)、count(column_name)的区别

阅读数 3896

1、主要区别1)count(*)所有行进行统计,包含值为null的行。2)count(column)会对指定列具有的行数进行统计,除去值为NULL的行。3)count(1)与count(*)的效果是一...博文来自: 微个日光日

hive中count(*)、count(1)、count(某字段)的区别

阅读数 4682

最近看到某公司面试题有这个,顺便查了一下。count(*):所有行进行统计,包括NULL行count(1):所有行进行统计,包括NULL行count(column):对column中非Null进行统计...博文来自: huobumingbai1234的博客

时间不同步问题导致hive 只能select* 不能select count(*)select 某个字段 ,是因

阅读数 1650

时间不同步问题导致hive只能select*不能selectcount(*)select某个字段,是因为select*不调用mrselect单个字段或者count(*)调用mr时间不同步问题导致hiv...博文来自: SpartacusG的专栏

count(*)和count(1)和count列名)的区别

阅读数 45

count是一种最简单的聚合函数,一般也是我们第一个开始学习的聚合函数,那么他们之间究竟由什么区别呢?有的人说count(1)和count(*)他们之间有区别,而有的人说他们之间没有区别那么他们之间到...博文来自: XVII 的博客

关于数据库优化1——关于count(1),count(*),和count(列名)的区别,和关于表中字段顺序的问题

阅读数 823

1.关于count(1),count(*),和count(列名)的区别  相信大家总是在工作中,或者是学习中对于count()的到底怎么用更快。一直有很大的疑问,有的人说count(*)更快,也有的人...博文来自: zwmnhao1980的博客

【优化】COUNT(1)、COUNT()、COUNT(常量)、COUNT(主键)、COUNT(ROWID)、COUNT(非空列)等

08-09

BLOG_Oracle_lhr_【优化】COUNT(1)、COUNT()、COUNT(常量)、COUNT(主键)、COUNT(ROWID)、COUNT(非空列)、COUNT(允许为空列)、COUNT(DISTINCT 列名).pdf

下载

count(*) 与count列名)的区别

09-04

恩 我记得有个 * 有个可以查出null 的信息 这个null 指的是什么?那一列为null?? 条件列么? 其实还是有点糊涂rnrnrn那个,除此之外 还有什么? count (*) 会用到索引?? rnrnrn今天面试因为这个题被鄙视了... 郁闷死了 还顺便鄙视我们老师。rnrn我不就一应届生吗 至于这么鄙视我么!!居然因为count(*) 还是count(主键列)的问题 说我sql 有问题.....rnrn各位师兄师姐帮帮忙吧~~

关于使用count(X) 函数的说明(附加:关于null的说明以及和0的区别

阅读数 3723

关于使用count(X)函数的说明count(X)函数用于计算一个查询所返回的行数,但是和其他的聚合函数AVG(X),SUM(X),MAX(X),MIN(X)一样,它在统计的时候都会简单的忽略含有空记...博文来自: haiross的专栏

count(*)、count(1)、count(column)执行效率高低比较

阅读数 185

count(*)、count(1)、count(column)区别   &...博文来自: qq_30038111的博客

Select Count(*)、Count(1)、Count(0)的区别执行效率比较(纯总结)

阅读数 113

纯总结,观后笔记一样的存在,若理解有误欢迎指正!这是我围观的文章1这是我围观的文章2W3School对SQLcount()的解释首先,COUNT()函数的定义:返回匹配指定条件的行数。COUNT(*)...博文来自: qq_34702563的博客

Oracle 中count(1) 和count(*) 的区别

阅读数 8.5万

count(1)与count(*)比较:如果你的数据表没有主键,那么count(1)比count(*)快如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快如果你的表只有一个...

select count(1)和count(*)的区别

阅读数 739

一般情况下,SelectCount(*)和SelectCount(1)两着返回结果是一样的    假如表沒有主键(Primarykey),那么count(1)比count(*)快,    如果有主键的...博文来自: dcwnb1的专栏

count(列名)与count(*)说明

阅读数 794

1、count(*)会统计值为NULL的行,而count(列名)不会统计此列为NULL值的行;2、不要使用count(列名)或者count(常量)来代替count(*),count(*)就是SQL92...博文来自: pengShuai007的博客

count(1)和count(*)的区别

阅读数 1611

在SQLServer中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的。本文会阐述这三者的作用,关系以及背后的原理。   往常我经...博文来自: HGodsun的博客

count(字段)不统计null值

阅读数 9419

在对有null值的字段进行count时,发现count(1)与count(字段)得到的记录不一样。最后在ITPUB上朋友们的帮助下,解决了。原帖地址:http://www.itpub.net/thre...博文来自: wozengcong的专栏

使用COUNT函数处理NULL值

阅读数 4261

使用COUNT函数处理NULL值大部分集合函数在进行计算时都去除NULL值,但COUNT函数是一个例外。一般情况下当对一个包含NULL值的列使用COUNT函数时,这个列中的NULL值将会被去除掉。但是...博文来自: 北国风光的专栏

 

MySQL 大表的count()优化

阅读数 2.4万

以下是基于我结合B+树的数据结构和对实验结果的推测作出的判断,如有错误,恳请指正!今天实验了一下MySQL的count()操作优化,以下讨论基于mysql5.7InnoDB存储引擎.x86window...博文来自: earayu的博客

整理测试count(1)、count(*)以及count(列)的区别

阅读数 145

背景:业务需要对多个数据库表进行count统计,很早以前就听一个同事说count(1)比count()要快,说count()要全表扫描而count(1)则不用…后来我百度过好像说这种说法是错误的,所以...博文来自: Abysscarry的博客

(三)SQL语句

阅读数 284

1:不要使用count(列名)或count(常量)来替代count(*),count(*)是SQL92定义的标准统计行数的语法,跟数据库无关,根null和非null无关。说明:count(*)会统计值...博文来自: 李云峰的博客

COUNT(*)与COUNT(列名)的区别(转)

阅读数 3

COUNT(*)与COUNT(列名)的区别    以前一直没有留意到COUNT(*)与COUNT(列名)的区别,昨天晚上无意中看到数据库系统工程师教程里面的一句话."如果null参与聚集运算...博文来自: weixin_33939380的博客

java07_几张图了解count(*)与count列名)的区别

阅读数 154

Count(*)求的是所有g_price=2的项的和 这个语句的结果为2     Count(列名)求的是g_price=2中g_name不为NULL的和  这个语句求的值为1...博文来自: wojiaolalala的博客

 

count(*) 和count(1)的区别

06-19

如题:前段时间听同事说,count(*) 比count(1)的效率慢....细想一下,发现自己也不太明白,求解!

count(*)和count(1)的区别

01-04

我是一个菜鸟,希望得到大家的指点,谢谢了。

mysql count(*) 和 count(1)和count(列名)区别

阅读数 32

count(*)和count(1)和count(列名)区别 执行效果上: count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL count(1)包括了忽略所有列,用1代...博文来自: u010947949的专栏

【数据库】count(*),count(1)和count(列)

阅读数 882

最近写了一些SQL,在用count进行统计的时候,我一般都习惯用count(*),看同事的代码有事会用count(1),那么count(*),count(1)和count(某一列)有什么区别呢?首先从...博文来自: 李晓洁 廊坊师范学院信息技术提高班 12期

浅谈MySQL中count(*) 与 count(1)的问题

阅读数 1953

原文链接摘要: 有问题或者不正确的地方请多指教~浅谈MySQLselectcount(*)与count(1) 最近看到同事在讨论MySQL关于count(1)、count(*)的执行效率等的问题,感兴...博文来自: weixin_40581980的博客

Select count(*)和Count(1)的区别执行方式

阅读数 259

在SQLServer中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的。本文会阐述这三者的作用,关系以及背后的原理。   往常我经...博文来自: Evan

mysql中select的count星和count1有区别

阅读数 2219

http://my.oschina.net/zimingforever/blog/76457之前一直都任务selectcount(1)fromtab的效率要高于count(*),今天看了下执行计划才发...博文来自: Thinking

ThreadLocal的设计理念与作用

阅读数 18202

Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的Thread...博文来自: u011860731的专栏

fastdfs+nginx+tracker搭建互联网电商分布式图片服务器过程

阅读数 10011

创业型的互联网公司,所以用开源软件自己搭建图片服务器,用来上传下载以及nginx转发负载均衡一、在安装FastDFS之前必须先安装libevent,安装libevent步骤如下:1.下载libeven...博文来自: MySQL

VirtualBox COM获取对象失败

阅读数 34922

错误详情 1. 先来看看错误详情 获取 VirtualBox COM 对象失败.应用程序将被中断.Failed to instantiate CLSID_VirtualBox ...博文来自: 多点折腾少点抱怨

jquery/js实现一个网页同时调用多个倒计时(最新的)

阅读数 157595

jquery/js实现一个网页同时调用多个倒计时(最新的) 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! //js ...博文来自: websites

【小程序】微信小程序开发实践

阅读数 87604

帐号相关流程注册范围 企业 政府 媒体 其他组织换句话讲就是不让个人开发者注册。 :)填写企业信息不能使用和之前的公众号账户相同的邮箱,也就是说小程序是和微信公众号一个层级的。填写公司机构信息,对公账...博文来自: 小雨同学的技术博客

如何在ArcGIS Online中构建自己的应用程序模板初级篇-显示地图

阅读数 42722

开发ArcGIS Online应用程序模板之前,需要了解怎么使用ArcGIS API for JavaScript。     在ArcGIS Online当中如何构架自己的应用程序模板,我们得先要了...博文来自: ArcGIS产品与技术专栏

强连通分量及缩点tarjan算法解析

阅读数 278877

强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Ti...博文来自: 九野的博客

opencv视频操作基础---VideoCapture类

阅读数 43380

    opencv中通过VideoCaptrue类对视频进行读取操作以及调用摄像头,下面是该类的API。1.VideoCapture类的构造函数:C++: VideoCapture::VideoCa...博文来自: 洪流之源

python图片处理类之~PIL.Image模块(ios android icon图标自动生成处理)

阅读数 16428

1.从pyCharm提示下载PIL包  http://www.pythonware.com/products/pil/   2.解压后,进入到目录下 cd /Users/jianan/Dow...博文来自: 专注于全栈游戏开发

手把手教你整合最优雅SSM框架:SpringMVC + Spring + MyBatis

阅读数 163336

小疯手把手带你整合SpringMVC+Spring+MyBatis三大框架,俗称SSM,用它完全代替传统的SSH框架,把它们最优雅的一面发挥出来。整合配置结束后,会有一个应用实例“图书管理系统”带给大...博文来自: 小疯的代码健身房

关于SpringBoot bean无法注入的问题(与文件包位置有关)

阅读数 91870

问题场景描述整个项目通过Maven构建,大致结构如下: 核心Spring框架一个module spring-boot-base service和dao一个module server-core 提供系统...博文来自: 开发随笔

DirectX修复工具增强版

阅读数 1808185

最后更新:2018-12-20 DirectX修复工具最新版:DirectX Repair V3.8 增强版  NEW! 版本号:V3.8.0.11638 大小: 107MB/7z格式压缩,18...博文来自: VBcom的专栏

蒙特卡罗on-policy off-policy区别 图像超分辨率重建模块区别 机器学习 机器学习课程 机器学习教程

c++map中的count c++ count map 查找 c++ count 头文件 c++ count map size c++ count中重载比较函数 1个月python培训机构 机器学习与人工智能的区别

BigoSprite

关注

原创

138

粉丝

23

喜欢

22

评论

25

等级:

 

访问:

 

19万+

积分:

 

3038

排名:

 

1万+

勋章:

 

个人信息

邮箱:bigosprite@163.com

 

新浪微博: BIGOSPRITE

 

只有高手才能活下来.

 

联系我们

微信客服

微信客服

QQ客服

QQ客服

kefu@csdn.netQQ客服

客服论坛400-660-0108

工作时间 8:30-22:00

关于我们招聘广告服务 网站地图

百度提供站内搜索 京ICP证19004658号

©1999-2019 北京创新乐知网络技术有限公司

经营性网站备案信息网络110报警服务

北京互联网违法和不良信息举报中心

中国互联网举报中心

  •  

    13

  •  
  •  
  •  
  •  

 

猿学习

 

展开阅读全文
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值