【MySQL】count(*)、count(1)和count(列名)区别

news/2025/1/14 0:43:21/
  • 问题:用count(*),count(1),count(列名)谁好呢?

其实,对于MyISAM引擎的表是没有区别的。这种引擎内部有一计数器在维护着行数。

Innodb引擎的表用count(*),count(1)直接读行数,复杂度是O(n),因为innodb真的要去数一遍。但好 于具体的count(列名)。

  • 问题:能不能使用count(列名)替换count(*)?

不要使用 count(列名)来替代 count(*) , count(*) 是 SQL92 定义的标准统计行数的语法,跟数 据库无关,跟 NULL 和非 NULL 无关。

说明:count(*)会统计值为 NULL 的行,而 count(列名)不会统计此列为 NULL 值的行。

  • COUNT(*)返回表中记录总数,适用于任意数据类型,当只需要知道表中总行数时,通常性能是最快的。
  • COUNT(列名) 返回列名不为空的记录总数。
  • COUNT(1)同样统计表中所有行的数量,不管这些行是否包含 NULL ,COUNT(1) 和 COUNT(*) 的性能基本相同,因为 1 是一个常量,不会影响结果。但在一些旧版本的 MySQL 中可能有微小的性能差异。现代 MySQL 中,COUNT(1) 和 COUNT(*) 的性能差异通常可以忽略不计。

http://www.ppmy.cn/news/1562918.html

相关文章

【算法】不基于比较的排序(图解)

目录 1.比较器 2.桶排序 2.1.计数排序 2.2.基数排序 3.排序算法的稳定性及其汇总 1.比较器 返回负数的时候,第一个参数排在前面 返回正数的时候,第二个参数排在前面 返回0的时候,谁在前面都无所谓 Override public static void comp…

Spring 中的常用注解

Spring 作为 Java 企业级开发中最广泛使用的框架之一,以其强大的功能和灵活性为开发者提供了高效的开发体验。在 Spring 中,注解(Annotation)是其核心机制之一,它简化了配置文件的繁琐操作,通过声明的方式实…

机器学习 - 如何理解函数集合中的准确性、召回率、F1分数呢?

在机器学习中,准确性(Accuracy)、召回率(Recall)、和F1分数是常用的模型性能评价指标,它们从不同的角度衡量模型的表现。要理解它们,首先需要了解它们的定义和适用场景: 1. 基本概念…

制造业该怎么做数据治理?

什么是数据治理? 简单来说,数据治理就是管好企业的数据家底,就像管家一样,得有规划、有监督、还得落实执行。目标就是让数据在整个生命周期里都保持高质量、合规合法、安全可靠、用起来方便。这可不光是收集、存储和使用数据那么…

用 Python 绘制可爱的招财猫

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​​​ ​​​​​​​​​ ​​​​ 招财猫,也被称为“幸运猫”,是一种象征财富和好运的吉祥物,经常…

【深度学习之PyTorch】

目录 一、什么是PyThon? 二、张量的创建 2.1 指定数据创建 2.2 指定形状、指定数据创建 2.3 创建指定类型的张量 2.4 创建线性张量 2.5 创建随机张量 2.6 创建全0张量 2.7 创建全1张量 2.8 创建指定张量 2.9 总结 三、张量的类型转换 3.1 张量元素的类型转…

加强移动应用安全,应用加固不可或缺

随着移动设备的普及,手机应用已经成为我们生活中不可或缺的一部分。无论是在线购物、银行支付,还是日常通讯、娱乐,移动应用都在处理中大量敏感数据,这使得它们成为网络攻击者的主要目标。针对这一不断加剧的安全威胁,…

109周四复盘 (183)慢速

1、关键词: 战斗体验、慢速 2、昨晚新增了伤害数值UI,虽然只是简单的数字动画,但对打击感还是有所帮助的。 3、白天主要是某关卡的战斗体验优化, 起初的版本问题很多,但一直没有下决心去彻底解决,各种杂事…