`

count(1) 和 count(*) 区别

SQL 
阅读更多
当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了!

从执行计划来看,count(1)和count(*)的效果是一样的。
但是在表做过分析之后,count(1)会比count(*)的用时少些(1w以内数据量),不过差不了多少。
这个也与表的记录数多少有关!如果1w以外的数据量,做过表分析之后,反而count(1)的用时比 count(*)多了。

另外,当数据量达到10w多的时候,使用count(1)要比使用count(*)的用时稍微少点!

如果你的数据表没有主键,那么count(1)比count(*)快
如果有主键的话,那主键(联合主键)作为count的条件也比 count(*)要快
如果你的表只有一个字段的话那count(*)就是最快的啦
count(*) count(1) 两者比较。主要还是要count(1)所相对应的数据字段。
如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。
因为count(*),自动会优化指定到那一个字段。所以没必要去count(1),用count(*),sql会帮你完成优化的
因此:count(1)和count(*)基本没有差别!



分享到:
评论

相关推荐

    为什么阿里巴巴禁止使用 count(列名)或 count(常量)来替代 count(*)1

    在数据库查询中,`COUNT(*)`、`COUNT(列名)`和`COUNT(常量)`都是用来统计行数的方法,但它们之间存在细微的差异。本文将深入探讨这些差异,以及为什么阿里巴巴禁止使用`count(列名)`或`count(常量)`来替代`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)` 是两种常见的聚合函数,用于统计表中的行数。虽然在大多数情况下它们的结果相同,但它们的执行方式和背后的原理存在细微差别,这也是数据库优化中常常讨论的话题。...

    MySQL常见面试题(表连接类型,count(*),count(列),count(1)的区别,索引,存储引擎,锁,优化)

    2. **COUNT函数的区别** - **COUNT(*)**:统计表中的所有行数,包括NULL值。 - **COUNT(列)**:统计指定列中非NULL的行数。 - **COUNT(1)**:在InnoDB引擎中,与COUNT(*)性能相似,都用于统计行数,包括NULL值。...

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

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

    【优化】COUNT(1)、COUNT()、COUNT(常量)、COUNT(主键)、COUNT(ROWID)、COUNT(非空列)等

    BLOG_Oracle_lhr_【优化】COUNT(1)、COUNT()、COUNT(常量)、COUNT(主键)、COUNT(ROWID)、COUNT(非空列)、COUNT(允许为空列)、COUNT(DISTINCT 列名).pdf

    sql的left join和count应用

    在SQL语言中,`LEFT JOIN` 和 `COUNT` 是两种非常重要的操作,它们在数据库查询中扮演着关键角色。在这个问题中,我们看到一个数据表 `TPL_WORD1`,它包含字段 `Wordid`(主键)、`idFuid`(上一级节点ID)和 `Name`...

    countUp插件使用

    1. **安装countUp.js**: 首先,通过npm(Node Package Manager)来安装countUp.js。在项目的根目录下运行以下命令: ``` npm install countup.js --save ``` 2. **导入countUp.js**: 在Angular的`src/assets`...

    CountV1-4(count).zip_CAD 统计_CountV1-4._CountV1-4.lsp_count.lsp_s

    这个压缩包的核心文件是 `CountV1-4.lsp` 和 `count.lsp`,它们都是LISP(AutoLISP)程序,这是一种为AutoCAD定制的编程语言,用于编写自动化脚本和自定义命令。 `CountV1-4.lsp` 是主要的统计脚本,可能包含了对...

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

    综上所述,`COUNT(*)`、`COUNT(1)` 和 `COUNT([列])` 在功能上有细微差别,但它们的主要目标都是统计非NULL值的数量。在实际应用中,关注索引的优化和选择合适的列进行计数,是提升查询性能的关键。对于 `COUNT(*)`...

    SourceCount代码统计工具

    SourceCount是一款强大的代码统计工具,它可以帮助开发者快速准确地统计项目中的代码行数,这对于项目管理和团队协作具有极高的价值。 SourceCount的主要功能在于其能够分析各种编程语言的源代码文件,包括但不限于...

    聊聊MySQL的COUNT(*)的性能

    基本职场上的程序员用来统计数据库表的行数都会使用count(*),count(1)或者count(主键),那么它们之间的区别和性能你又是否了解呢? 其实程序员在开发的过程中,在一张大表上统计总行数是非常耗时的一个操作,那么...

    CountLines.zip

    总的来说,"CountLines.zip"是一个实用的代码统计工具,尤其适用于C++和lua开发者,其便捷的使用方式和广泛的文件格式支持,使得它成为项目管理中的得力助手。通过深入理解并熟练运用这个工具,开发者可以更有效地...

    select count()和select count(1)的区别和执行方式讲解

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

    IPCount V2.2.7

    综上所述,IPCount V2.2.7作为世纪网通公话计费系统,以其强大的功能和高效的操作,为运营商提供了一站式的计费管理方案,是提升服务质量和经营效益的重要工具。而通过持续的技术更新和优化,IPCount将持续引领公话...

    S7-1500 工艺模块 TM Count 2x24V 计数功能使用入门.docx

    工艺模块 TM Count 2x24V 的接线方式是将两个 24V 脉冲信号编码器接到模块的 1 号端子和 2 号端子上。 本文档还详细介绍了计数功能的概述,计数是指对事件进行记录和统计,工艺模块的计数器捕获编码器信号和脉冲,...

    再聊Count1

    1. **空间效率**:Count-Min Sketch占用的空间相对较小,只需要O(dw)的存储空间,其中d和w是可调整的参数,可以根据应用场景和精度需求进行选择。 2. **实时性**:CMS可以在O(1)的时间复杂度内完成更新和查询操作,...

    基于CountUpjs的vue组件

    1. **安装CountUp.js**:首先,需要通过npm或yarn将CountUp.js引入项目。在终端中运行`npm install countup.js`或`yarn add countup.js`。 2. **导入CountUp.js**:在Vue组件中引入CountUp.js库,例如: ```...

Global site tag (gtag.js) - Google Analytics