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

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.xdnf.cn/news/17732.html

相关文章:

  • QLab Pro for Mac —— 专业现场音频与多媒体控制软件
  • Unity Shader unity文档学习笔记(十九):粘土效果,任意网格转化成一个球(顶点动画,曲面着色器)
  • 【代码随想录day 20】 力扣 669. 修剪二叉搜索树
  • 【CLR via C#(第3版)阅读笔记】类型基础
  • PostgreSQL——视图
  • 嵌入式C/C++面试大全
  • Gradle(四)Maven 项目迁移 Gradle 项目实践
  • spring mvc HttpMessageConverter 消息转换器
  • 【KALI】第一篇 安装Kali Linux虚拟机之详细操作步骤讲解
  • CNN - 卷积层
  • 利用 Java 爬虫按图搜索 1688 商品(拍立淘)实战指南
  • 高效TypeScript开发:VSCode终极配置指南
  • Varjo XR虚拟现实军用车辆驾驶与操作培训
  • 【MATLAB代码】滑动窗口均值滤波、中值滤波、最小值/最大值滤波对比。订阅专栏后可查看完整代码
  • OpenCV中对图像进行平滑处理的4种方式
  • 《多级缓存架构设计与实现全解析》
  • 【跨越 6G 安全、防御与智能协作:从APT检测到多模态通信再到AI代理语言革命】
  • 机器视觉的磁芯定位贴合应用
  • GraphRAG查询(Query)流程实现原理分析
  • Java+Vue构建的MES信息管理系统,含完整源码,功能涵盖生产跟踪、质量管控等,助力企业实现精细化、智能化生产管理
  • 【16-softmax回归】
  • AI 赋能的软件工程全生命周期应用
  • springboot+vue实现通过poi完成excel
  • Postman 平替 技术解析:架构优势与实战指南
  • 观察者模式(C++)
  • 【Leetcode hot 100】76.最小覆盖字串
  • 【HarmonyOS】Window11家庭中文版开启鸿蒙模拟器失败提示未开启Hyoer-V
  • SwiftUI 页面弹窗操作
  • 用飞算JavaAI一键生成电商平台项目:从需求到落地的高效实践
  • 使用免费API开发口播数字人