当前位置: 首页 > news >正文

mysql——count(*)、count(1)和count(字段)谁更快?有什么区别?

目录

    • 一、count(*)、count(1)和count(属性)谁更快?有什么区别?
      • 1.1、示例
      • 1.2、count(*)、count(1)和count(属性)区别
        • 1.2.1、语义区别‌
        • 1.2.2、count(*)和count(1)在功能和性能上区别

一、count(*)、count(1)和count(属性)谁更快?有什么区别?

1.1、示例

  • 例如表结构及数据如下图:
    在这里插入图片描述

  • 分别执行如下3条sql语句

    SELECT count(*) FROM t_user;
    SELECT count(1) FROM t_user;
    SELECT count(names) FROM t_user;
    

1.2、count(*)、count(1)和count(属性)区别

1.2.1、语义区别‌
  • count(*) 返回3条数据

    说明统计满足条件的结果集的总行数,包括所有行(无论是否包含NULL值

  • count(1) 返回3条数据

    说明与count(*)功能相同,统计所有行数

  • count(names) 返回2条数据

    说明统计该字段非NULL的行数(若字段允许NULL,则仅统计非NULL值)

1.2.2、count(*)和count(1)在功能和性能上区别
  • mysql官网上表示count(*)和count(1)在功能和性能上没有任何区别,下图为官网截图:

    在这里插入图片描述

  • 通过explian执行计划查看,如下图:

    explain SELECT count(*) FROM `t_user`;
    show WARNINGS;
    

    在这里插入图片描述

  • 可以看到mysql底层对这个查询进行了sql优化,把 count(*) 优化成了count(0),其中count(0)和count(1)是没有任何区别的,只是为了标记当前这条数据存在的一个常量,所以优化完之后的这个**count(*)**跟count(1)肯定是没有任何性能上的区别。

  • 如果非要进行比较的话,肯定还是 **count(*)**比count(1)略胜一筹,因为它不需要mysql在底层进行任何的sql优化。

http://www.dtcms.com/a/331145.html

相关文章:

  • 《软件工程导论》实验报告三 需求分析建模(二)
  • SQL LEFT JOIN 与 WHERE 条件的隐藏坑
  • anaconda创建pytorch1.10.0和pytorch2.0.0的GPU环境
  • iOS 26 一键登录失效:三大运营商 SDK 无法正常获取手机号
  • 装个 Oracle 23ai 本地版玩玩~
  • 短剧小程序系统开发:赋能创作者,推动短剧艺术创新发展
  • SpringBoot+Vue线上部署MySQL问题解决
  • CPP模板编程
  • AI驱动的智能爬虫架构与应用
  • openvsx搭建私有插件仓库
  • 设计模式有哪些
  • 2022_ISG_CTF-rechall详解(含思考过程)
  • MixOne在macOS上安装碰到的问题
  • 上网行为安全概述
  • 【跨越 6G 安全、防御与智能协作:从APT检测到多模态通信再到AI代理语言革命】
  • 数据结构:用链表实现队列(Implementing Queue Using List)
  • python批量爬虫实战之windows主题爬取
  • 移位操作符技巧
  • 8. 函数简介
  • DeepSeek补全IBM MQ 9.4 REST API 执行命令的PPT
  • Mac chrome浏览器下载DevEco Studio 6.0.0 Beta2失败
  • 分布式锁—Redisson的公平锁
  • 线上故障定位:从报警到根因的实战指南
  • Eureka故障处理大汇总
  • 使用 Git Submodules 管理前后端分离项目
  • scikit-learn/sklearn学习|广义线性回归 Logistic regression的三种成本函数
  • Docker 核心技术:Namespace
  • Java毕业设计选题推荐 |基于SpringBoot的健身爱好线上互动与打卡社交平台系统 互动打卡小程序系统
  • 2019 GPT2原文 Language Models are Unsupervised Multitask Learners - Reading Notes
  • [激光原理与应用-274]:理论 - 波动光学 - 光是电磁波,无线电磁波可以通过天线接收和发送,为什么可见光不可以?