- count(1)和count(*)
- 从执行计划来看,count(1)和count(*)的效果是一样的
- 当表的数据量大些时,对表分析之后,使用count(1)还要比使用count(*)用时多
- 当数据量在1W以内时,count(1)会比count(*)的用时少,不过也差不多
- 如果count(1)是聚集索引时,那肯定是count(1)快,但是差的很小
- 因为count(* )会自动优化到指定到哪一个字段,所以没必要去count(1),使用count(* ),sql会帮你完成优化的
- 因此,在有聚集索引时count(1)和count(*)基本没有区别
- count(1)和count(字段)
- count(1)会统计表中的所有的记录数,包含字段为null的记录
- count(字段)会统计该字段在表中出现的次数,忽略字段为null的情况,即不统计字段为null的记录
- 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(*)最优
- 执行效果上
mysql中count的区别
莫得等待2024-07-11 5:02
相关推荐
神仙别闹5 分钟前
基于C#+MySQL实现(WinForm)企业设备使用信息管理系统唐僧洗头爱飘柔95275 分钟前
【SSM-SSM整合】将Spring、SpringMVC、Mybatis三者进行整合;本文阐述了几个核心原理知识点,附带对应的源码以及描述解析骑牛小道士17 分钟前
Java基础 集合框架 Collection接口和抽象类AbstractCollectionalden_ygq43 分钟前
当java进程内存使用超过jvm设置大小会发生什么?码农黛兮_461 小时前
SQL 索引优化指南:原理、知识点与实践案例爆肝疯学大模型1 小时前
SQL server数据库实现远程跨服务器定时同步传输数据triticale1 小时前
【Java】网络编程(Socket)淘源码d1 小时前
什么是ERP?ERP有哪些功能?小微企业ERP系统源码,SpringBoot+Vue+ElementUI+UniAPP源码方舟1 小时前
【基于ALS模型的教育视频推荐系统(Java实现)】Mcworld8571 小时前
整数分解JAVA