`
uule
  • 浏览: 6351489 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

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

 
阅读更多

很多人认为count(1)执行的效率会比count(*)高,原因是count(*)会存在全表扫描,而count(1)可以针对一个字段进行查询。其实不然,count(1)和count(*)都会对全表进行扫描,统计所有记录的条数,包括那些为null的记录,因此,它们的效率可以说是相差无几。而count(字段)则与前两者不同,它会统计该字段不为null的记录条数。

 

type = index 全索引扫描

 

下面它们之间的一些对比:

1)在表没有主键时,count(1)比count(*)快;

2)有主键时,主键作为计算条件,count(主键)效率最高;

3)若表格只有一个字段,则count(*)效率较高。

分享到:
评论

相关推荐

    MySQL中count(*)、count(1)和count(col)的区别汇总

    本篇文章将详细解释COUNT(*)、COUNT(1)以及COUNT(column)这三种不同用法的区别。 1. COUNT(*) COUNT(*)是最常见的用法,它会计算表中所有非NULL的行。这意味着,即使列中有NULL值,COUNT(*)也会将其计入总数。在...

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

    在SQL Server中,`SELECT COUNT(*)` 和 `COUNT(1)` 是两种常见的聚合函数,用于统计表中的行数。虽然在大多数情况下它们的结果相同,但它们的执行方式和背后的原理存在细微差别,这也是数据库优化中常常讨论的话题。...

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

    执行效果: 1. count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时...所以没必要去count(1),用count(*),sql会帮你完成优化的 因此: count(1)和count(*)基本没有差别!

    sql的left join和count应用

    在这个问题中,我们看到一个数据表 `TPL_WORD1`,它包含字段 `Wordid`(主键)、`idFuid`(上一级节点ID)和 `Name`。练习的目标是根据 `fuid` 查询节点是否有子节点,并利用 `COUNT` 函数来确定节点的子节点数量。 ...

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

    综上所述,`COUNT(*)`、`COUNT(1)` 和 `COUNT(列名)` 在使用上没有本质的区别,它们都是用来统计满足条件的行数,但 `COUNT(列名)` 特别关注指定列的非NULL值。在考虑性能优化时,应根据查询需求和表结构,合理创建...

    MySQL中distinct和count(*)的使用方法比较

    在MySQL数据库中,`DISTINCT` 和 `COUNT(*)` 是两种常见的SQL查询关键字,它们各自有不同的用途和场景。本文将详细探讨这两种方法的使用方法及其差异。 首先,`DISTINCT` 关键字用于从查询结果中去除重复的记录。在...

    MongoDB教程之聚合(count、distinct和group)

    总结来说,MongoDB 的聚合功能是其强大之处,`count`、`distinct` 和 `group` 提供了对数据进行统计、查找唯一值和复杂分组的能力,从而满足了数据分析和报告的各种需求。在实际项目中,这些聚合操作可以帮助开发者...

    MySQL根据某一个或者多个字段查找重复数据的sql语句

    1.表中有id和name 两个字段,查询出name重复的所有数据 select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1) 2、查询出所有数据进行分组之后,和重复数据...

    mysq count优化.docx

    - **适用场景**:当统计某个字段非空的数量时,可以考虑使用`COUNT(column)`替代`COUNT(*)`。 ##### 2.5 估算而非准确统计 - **适用场景**:对于不需要精确统计的场景,可以采用采样或估算的方式快速返回结果。 - ...

    达梦和oracle的差异说明

    在处理字段名时,达梦数据库和Oracle有着显著的区别。对于字段名的大小写敏感性问题,两者采用了不同的处理方式: - **达梦数据库**:支持字段名的大小写敏感性,即在查询结果中会按照原始SQL语句中的大小写返回...

    PowerBuilder中使用JDBC连接MYSQL无法使用COUNT(*)MAX()函数

    例如,确保所有必要的表和字段都正确引用,SQL语句的语法没有错误。 #### 4. 使用正确的SQL语句格式 确保SQL语句格式正确无误。对于`COUNT(*)`和`MAX()`等聚合函数,应确保它们被正确地嵌入到SELECT语句中,如下所...

    关于mysql innodb count(*)速度慢的解决办法

    1. **利用索引和WHERE子句**: - 为表创建一个辅助索引,通常不选择主键索引,然后在`COUNT(*)`查询中添加适当的`WHERE`条件。例如,对于表`product`,可以创建一个`comp_id`的索引,然后运行`SELECT COUNT(*) FROM...

    文件系统ext2.pdf

    它是在Ext(第一扩展文件系统)的基础上发展起来的,提供了更多的功能和更好的性能。Ext2支持更大的文件和文件系统大小,并且具有更高效的文件系统管理机制。 #### 二、磁盘组织结构 在Ext2文件系统中,磁盘被划分...

    分析MySQL中优化distinct的技巧

    上述场景中,用户遇到了一个问题:对一个10G以上的单表`user_access_xx_xx`执行`SELECT COUNT(DISTINCT nick)`以统计唯一用户访问(UV)时,即使有`nick`字段的索引,执行计划仍然显示全索引扫描,导致服务器性能受...

    14.count(×)这么慢,我该怎么办?1

    1. **定期同步计数**:在每次插入或删除操作后更新一个专门的计数字段,或者在后台定时任务中执行`COUNT(*)`并将结果存储在内存或缓存中。这样可以在查询时直接读取预计算的值,提高效率。 2. **分区计数**:如果表...

    DButil 封装 包括模糊查询 分页Count 普通增删改查方法

    模糊查询是数据库查询中常见的需求,DButil通常会提供一个方法,接受待搜索的关键词和字段名,生成如`LIKE '%keyword%'`形式的SQL语句,方便在多个字段上进行模糊匹配。 4. **分页查询与Count统计**: 分页查询是...

    字节码文件结构详解.docx

    7. **fields_count** 和 **field_info**:字段计数器和字段信息表,描述类的成员变量。 8. **methods_count** 和 **method_info**:方法计数器和方法信息表,包含类的所有方法定义。 9. **attributes_count** 和 *...

    动易数据库字段详细解释

    16. **Count_Add, Count_Check, Count_Reject**: 工作量统计字段,记录管理员添加、审核和退稿的信息数量,可用于评估工作表现。 除了`PE_Admin`表,提到了`PE_Advertisement`表,虽然没有给出详细字段解释,但我们...

Global site tag (gtag.js) - Google Analytics