其实,挺正常的,count的用法大概有两个,不过一般大家不太注意:

统计某个列( 俗称字段 )有多少个有效值,也就是值不是null的有多少个。

统计记录有多少行,我背诵过的规则是这样的:当count()括弧的表达式被认为不可能为空时,就会自动忽略所有列,直接统计结果记录一共多少行。曾经以为,*的时候,会自动扩展展开所有的列,其实不是。可能是受select(星号)影响。

当不指定条件的时候,count是很快的,指定条件速度会下降。

mysql在设计上,count(星号)性能是很快的,即便是加上where,它就是要比count(col)快,因为count(col)要判断每行是不是NULL,而count( 星号 )也并不是想象中那样扩展所有列,它会直接忽略列而直接统计结果集行数,只要有行就纳入统计,具体这行每列的值是什么对它来说根本不重要,跟select(*)是不同的。

结论就是,如果你要统计记录条数一共多少条,一定要用count(*),而不是count(col),它的性能会更好。当引擎发现你的col不可能为null的时候,它会将col转换成星号,如果楼主用的id时主键,那么其实会被转化成星号,这转化也是耗费性能的。

补充一下:myisam引擎状况下,如果不指定where条件,那么myisam是很迅速,因为不指定条件会直接读取存储引擎存储的一个特殊字段,值是总行数,但是一旦指定where条件,迅速的神话也就没了,沦落和其他引擎差不多了。

易企达10年行业沉淀!专业小程序、公众号H5、APP定制开发

本文原地址:https://www.eqiday.com/66.html

郑重声明内容版权声明:除非注明,否则皆为本站原创文章。如有侵权联系进行删除!

mysql count count id_mysql 为什么count(*)快于count(id)相关推荐

  1. mysql innodb count_MySQL下INNODB引擎的SELECT COUNT(*)性能优化及思考

    正 文: MySQL下INNODB引擎的SELECT COUNT(*)性能优化及思考 最近有项目有高并发需求,服务器采用负载均衡,数据库采用阿里云的RDS MYSQL,16核64G内存,连接数:160 ...

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

    相信很多小伙伴都想了解 count(1) 和 count(*) 的性能问题 ,今天给大家做一下测试. 声明:本文使用MySql数据库,数据库表里面有100万条数据. 先测试 count(*) 可以看出 ...

  3. select count(*) from返回值_MySQL 优化:count(1)真的比count(*)快吗

    在实际项目开发中一定会有统计记录数的需求,比如统计用户数,像一些电商系统后台首页会统计订单量.上架商品数量等等,涉及到统计就离不开聚合函数 count() ,开发中常用写法如下: select cou ...

  4. 【MySQL】基于MySQL的SQL优化(二)——对count()、max()的优化

    *本文章使用数据均来自MySQL样本数据库Sakila,参考:https://blog.csdn.net/tanglei6636/article/details/93042010 max(): 通过一 ...

  5. Mysql与Sql server,Sum函数跟Count函数

    两者均是统计类函数,都不计算NULL字段!!! 单纯计算行数的话,count的效率比sum的效率高 MySQL SUM()函数介绍 SUM()函数用于计算一组值或表达式的总和,SUM()函数的语法如下 ...

  6. oracle count最快的方法,Oracle count哪种写法更快

    1)创建测试表 test@CISCOSYS> create table t as select * from dba_objects; 表已创建. test@CISCOSYS> updat ...

  7. mysql语句性能优化-使用case when 代替count(*)

    文章目录 前言 一.问题SQL 二.修改后SQL 总结 前言 负责运维的项目有个页面加载特别慢,打开差不多要2分钟,但是页面数据并不算多,只有几百条.为了把页面加载速度慢的问题解决,通过查看后台日志, ...

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

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

  9. count返回0_你是一直认为 count(1) 比 count(*) 效率高么?

    MySQL count(1) 真的比 count(*) 快么? 反正同事们都是这么说的,我也姑且觉得对吧,那么没有自己研究一下究竟?如果我告诉你他们一样,你信么? 有 Where 条件的 count, ...

  10. 如何理解 select * from B where (select count(1) as num from A where A.ID = B.ID) = 0

    如何理解 select * from B where (select count(1) as num from A where A.ID = B.ID) = 0 为什么 可以在B表中 排除A表的数据 ...

最新文章

  1. 消息队列的使用场景_消息队列MQ的特点、选型及应用场景
  2. 入坑推荐系统,从Google这篇开始
  3. Diversity HDU - 6725
  4. 华为什么时候更新鸿蒙os,华为鸿蒙系统升级时间表
  5. 最大化BEA WebLogic Cluster的性能、可用性和安全
  6. filter滤镜实现img图片的CSS蒙版效果、模糊效果
  7. ionic 配置java_Ionic 项目配置环境
  8. JS实现数字千位符格式化方法
  9. easypoi list中的map导出_java导出excel(easypoi)
  10. 易用性软件测试用例,易用性测试用例集
  11. 【转】 Pro Android学习笔记(五八):Preferences(2):CheckBoxPreference
  12. 用友网络发布惠商云平台 五大价值构建企业互联网新生态
  13. SSM框架学习(2)CRM项目软件开发周期
  14. ps照片人像油画复古效果怎么做
  15. 55.网页设计规则#3_图片和插图
  16. 史上最全Maven教程(三)
  17. Hibernate - 对象关系映射文件(*.hbm.xml)详解
  18. python 版本错误导致的 roscore 问题
  19. 常用的计算机有哪些台式的还有哪些,现在台式电脑的主流配置有哪些?
  20. 滑模变结构控制(2)--RBF神经网络

热门文章

  1. Windows Server 2012 R2 里面如何安装Net Framework 3.5
  2. Spring--quartz中cronExpression 的配置方法
  3. oracle数据库导入_oracle数据库导入数据
  4. Delphi多媒体设计之TMediaPlayer组件(二)
  5. EntitySpaces2009的开发文档地址
  6. weblogic在处理jsp tag的scope属性时的BUG???
  7. select怎么设置默认值_20200817:详细说下数据倾斜怎么解决?
  8. c语言int a什么意思,问一下吧里大神 int a = a; 这么定义是什么意思?
  9. [转载] Python3.0中普通方法、类方法和静态方法的比较
  10. vue ani_ANI的完整形式是什么?