在MySQL中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的。经常会看到一些所谓的优化建议不使用Count(* )而是使用Count(1),从而可以提升性能,给出的理由是Count( *)会带来全表扫描。

Count(1)和Count(*)实际上的意思是,评估Count()中的表达式是否为NULL,如果为NULL则不计数,而非NULL则会计数。比如我们看代码1所示,在Count中指定NULL(优化器不允许显式指定NULL,因此需要赋值给变量才能指定)。

下面给出一个实际的查询时间的比较,从中可以看出Count(1)确实要比Count(*)的效率高,查询时间也要短的多!!!下面上图:

中间省略掉

.......................................................

下面分别比较两种方式的实际耗时:

(1)使用coun(*)方式

(2)使用coun(1)方式

这还是在仅几千条数据的情况下的时间,实际上当面临上千万条数据时候,二者的效率和时间差将会更加明显的。

Select count(*)和Count(1)的区别和执行效率比较相关推荐

  1. count(1)、count(*)、count(列名)的含义、区别、执行效率

    维护同事的代码发现他的 sql 查询记录条数都是 count(1),而我则习惯用 count(*),这有什么区别呢? 含义: 1.count(*) :统计所有的行数,包括为null的行(COUNT(* ...

  2. in和exists的区别与执行效率问题解析

    2019独角兽企业重金招聘Python工程师标准>>> in可以分为三类: 1.形如select * from t1 where f1 in ( &apos:a &a ...

  3. Java字节流与字符流的区别和执行效率

    区别: 1.字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的 2.字节流在操作文件时,即使不关闭资源(close方法),文件也能输出,但是 ...

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

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

  5. mysql常量求和_Mysql之:count(*)、count(常量)、count(字段)的区别

    count函数暗藏很多玄机,学习之前先尝试回答以下几个问题吧: > 1.COUNT有几种用法? > 2.COUNT(字段名)和COUNT(*)的查询结果有什么不同? > 3.COUN ...

  6. MySQL的count(*) ,count(1),count(id)的区别

    数据库查询相信很多人都不陌生,所有经常有人调侃程序员就是CRUD专员,这所谓的CRUD指的就是数据库的增删改查. 在数据库的增删改查操作中,使用最频繁的就是查询操作.而在所有查询操作中,统计数量操作更 ...

  7. 你当真了解count(*)count(id)count(1)吗?

    首先什么是count? 关于count函数,在mysql中也有描述: 简单翻译一下: 1.COUNT(expr) ,返回SELECT语句检索的行中expr的值不为NULL的数量.结果是一个BIGINT ...

  8. select count(*)加其他字段_count(1)、count(*) 与 count(列名) 的执行区别

    (给ImportNew加星标,提高Java技能) 作者:BigoSprite blog.csdn.net/iFuMI/article/details/77920767 执行效果: 1.  count( ...

  9. mysql select count() count(1)_select count()和select count(1)的区别和执行方式讲解

    select count()和select count(1)的区别和执行方式讲解 发布时间:2020-09-06 13:26:14 来源:脚本之家 阅读:227 作者:CODETC 在SQL Serv ...

最新文章

  1. Swift编程语言学习10—— 枚举属性监视器
  2. Java中使用SQLite数据库
  3. mysql 交集_MySQL 查询结果取交集的实现方法
  4. 巧用 TypeScript Literal Types 模拟枚举类型
  5. react学习(25)---注意接口引入位置
  6. html5做一个展示页面,基于HTML5的WebGL实现json和echarts图表展现在同一个界面
  7. scala中的二维数组_Scala中的多维数组
  8. C++概述部分内容记录
  9. 在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
  10. MySQL(14) 数据库优化方案
  11. 平面设计ps/ai/cdr
  12. dev-cpp linux,QT4+Devcpp开发环境搭建(参照网上资料整理)
  13. Spring Cloud(十二):Spring Cloud Zuul 限流详解(附源码)(转)
  14. html学习——介绍
  15. 操作系统-进程状态变迁分析
  16. java斜椭圆_JAVA 任意椭圆方向画法
  17. 正则,grep命令详解
  18. 炒作房地产对个人三观之扭曲
  19. oracle utl_file fcopy,ORACLE之UTL_FILE包详解
  20. mysql 以什么结尾查询_MySQL查询选择以某些字符/数字结尾的列值?

热门文章

  1. 前端学习(1796):前端调试之html/css介绍
  2. 前端学习(1132):正则表达式学习目标
  3. 前端学习(483):html之常用标签
  4. mybatis学习(44):二级缓存1
  5. 第十三期:你不想错过的那些JSON工具
  6. 玩转oracle 11g(49):监听服务设置开机自启,不用一直配置监听
  7. slide简介(大数据技术)
  8. 树莓派使用STEP1:装系统
  9. stylus之插值(Interpolation)
  10. WSL2 安装中文输入法教程 简单有效