今天前,我一直觉得count(1)优先于count(*),但是,今天想知道其缘由,查了一下百度,闪瞎我的双眼。

从执行结果来说:

count(1)和count(*)之间没有区别,因为count(*)count(1)都不会去过滤空值,

但count(列名)就有区别了,因为count(列名)会去过滤空值。

从执行效率来说:

他们之间根据不同情况会有些许区别,MySQL会对count(*)做优化。

(1)如果列为主键,count(列名)效率优于count(1)

(2)如果列不为主键,count(1)效率优于count(列名)

(3)如果表中存在主键,count(主键列名)效率最优

(4)如果表中只有一列,则count(*)效率最优

(5)如果表有多列,且不存在主键,则count(1)效率优于count(*)

补充关于count(1)count(*)原理 引用百度知道专业回答

count(1),其实就是计算一共有多少符合条件的行。

1并不是表示第一个字段,而是表示一个固定值。

其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1。

count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些。

原创不易,转载自:https://blog.csdn.net/qq_34696236/article/details/84376507

count(1)和count(*)的区别?相关推荐

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

    (给视学算法加星标,提升数据技能) 转自:BigoSprite https://blog.csdn.net/iFuMI/article/details/77920767 执行效果:  1.count( ...

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

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

  3. 执行COUNT(1)、COUNT(*) 与 COUNT(列名) 到底有什么区别?

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:干掉 Navicat:这个 IDEA 的兄弟真香!个人原创100W+访问量博客:点击前往,查看更多 来源:blo ...

  4. mysql中count(*)和count(1)和count(column)区别

    在日常的mysql使用中,我们经常会看到SELECT COUNT(*).SELECT COUNT(1)等查询语句,他们到底有什么区别呢?今天我就来总结下. 我们先从函数的含义说起: count() 统 ...

  5. 面试官 | count(1)、count(*) 、count(列名) 有什么区别?

    作者 | BigoSprite 来源 | 39sd.cn/0926A 先看执行效果: 1.  count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比 ...

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

    一般情况下,Select Count (*)和Select Count(1)两着返回结果是一样的 假如表沒有主键(Primary key), 那么count(1)比count(*)快, 如果有主键的話 ...

  7. sql 在某表中加入一列count所有数据_执行COUNT(1)、COUNT(*) 与 COUNT(列名) 到底有什么区别?...

    击关注上方"SQL数据库开发", 设为"置顶或星标",第一时间送达干货. 1.  count(1) and count(*) 从执行计划来看,count(1)和 ...

  8. 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 ...

  9. select count(*) 和 select count(1) 以及 select count(column) 的区别

    考试,目的在于让自己明白,自己天天写的都是垃圾 select count(*) 和 select count(1) 以及 select count(column) 的区别 1.如果表沒有主键, 那么c ...

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

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

最新文章

  1. 寫博客過程中遇到的問題
  2. python tqdm_Python基础 | 一个被忽视的神器tqdm
  3. SAP PP使用ECR去修改BOM主数据
  4. Go 语言 bytes.buffer write 相关操作
  5. 卷积神经网络新手指南 2
  6. The executable was signed with invalid entitlements
  7. NSDateFormatter设定日期格式
  8. 你还在为文件读写而烦恼?Python已经轻松帮你解决了(建议学习)
  9. PHP中||与or的区别
  10. 如何避免JDBC内存溢出问题
  11. oracle递归查询路径,oracle递归查询记录
  12. Volatile的实现原理(看这篇就够了)
  13. 拓端tecdat|Nelsen-Siegel—Svensson扩展模型简介
  14. [转]WebGL中文教程
  15. JDK获取所有的系统参数
  16. 《遥感原理与应用》孙家抦版知识点总结(含简答题)——第四章
  17. 在讯用矿物质防火电缆时应该注意什么?
  18. flutter页面布局HTML,Flutter开发实战初级(2)页面布局详解
  19. 广东工业大学数据结构AnyView参考答案
  20. 什么是ESB(企业服务总线)

热门文章

  1. 金融和计算机专业男女比例,大学中最容易找女朋友的5大专业,金融上榜,第一名就像身处天堂!...
  2. python自动生成企业名称查重脚本。
  3. 达梦数据库迁移,无法使用dts时怎么办。
  4. 批量修改文件后缀(无后缀有后缀的原文件均可)
  5. 51单片机最小时钟电路
  6. 联发科,请先学会拒绝
  7. 加拿大安省哪个高中注重计算机,加拿大安省高中选课指导
  8. 计算机主机箱拆箱,【转】工控机电脑主机 IABOX N10准系统开箱报告
  9. 计算机每次开机配置更新失败,win10系统开机总是提示配置windows更新失败的解决方案...
  10. 手机相册里android照片的来源,为什么手机相册总是出现不知道哪里来的照片?...