首页 > 数据库 >mysql中count函数的几种写法解析

mysql中count函数的几种写法解析

时间:2023-12-10 21:12:52浏览次数:34  
标签:count 遍历 累加 innodb mysql null 写法 整张

一、count(主键)

innodb引擎会遍历整张表,把每一行的主键值都取出来返回给服务层,服务层拿到主键后直接按行进行计数累加

二、count(特定字段)

2.1 没有not null约束

innodb引擎会遍历整张表,把每一行的字段值都取出来返回给服务层,服务层判断是否为null,不为null计数累加

2.2 有not null约束

innodb引擎会遍历整张表,把每一行的字段值都取出来返回给服务层,服务层直接按行进行计数累加

三、count(1)

innodb引擎会遍历整张表,但不取值,服务层对于返回的每一行,放一个数字1进去,直接按行计数累加

四、count(*)

innodb引擎会遍历整张表每一行,但并不会全部把字段值取出来,而是专门做了优化,不取值,服务层直接按行计数累加,

性能比上边几个高。

五、总结

上边几种count用法,主键不可能为Null,只有count(字段) 会忽略字段值为null的行,count(1)和count(*)都不会忽略null。

标签:count,遍历,累加,innodb,mysql,null,写法,整张
From: https://www.cnblogs.com/chengxuxiaoyuan/p/17893222.html

相关文章

  • mysql安装
    安装windwos服务初始化@echooffcd/D%~dp0setbasepath=%~dp0setservicename=MySQLcd%basepath%binechoinitializemysqld--initialize-insecureechoinstallservicemysqld--install%servicename%echostartmysqlnetstart%servicename%pause......
  • CentOS(7.6)环境下迁移Mysql(5.7)的data目录到指定位置
    第一步:关闭Mysql#关闭Mysql服务systemctlstopmysqld#查看Mysql服务状态ps-ef|grepmysql 第二步:创建新目录,并拷贝数据文件#创建data文件目录mkdir/data/mysql/data/#给mysql账号赋权chown-Rmysql:mysql/data/mysql/data/#拷贝数据到data文件下cp-a/var/lib/m......
  • mysql的锁机制运行原理是什么
    MySQL的锁机制是数据库管理系统用来协调多个并发事务对共享资源(例如数据库表)进行访问的一种方式。MySQL支持多种锁类型,包括共享锁和排它锁。以下是MySQL锁机制的一些基本原理:锁的类型:共享锁(SharedLock):多个事务可以同时持有共享锁,用于读取共享资源,不阻塞其他事务的共享锁。排它锁(E......
  • python3使用pandas备份mysql数据表
    操作系统:CentOS7.6_x64Python版本:3.9.12MySQL版本:5.7.38日常开发过程中,会遇到mysql数据表的备份需求,需要针对单独的数据表进行备份并定时清理数据。今天记录下python3如何使用pandas进行mysql数据表的备份,我将从以下几个方面进行展开: 数据表备份逻辑描述 使用的相关......
  • MySQL 数据库操作指南:LIMIT,OFFSET 和 JOIN 的使用
    限制结果您可以通过使用"LIMIT"语句来限制查询返回的记录数量。以下是一个示例,获取您自己的Python服务器中"customers"表中的前5条记录:importmysql.connectormydb=mysql.connector.connect(host="localhost",user="yourusername",password="yourpassword",......
  • MySQL 数据库操作指南:LIMIT,OFFSET 和 JOIN 的使用
    限制结果您可以通过使用"LIMIT"语句来限制查询返回的记录数量。以下是一个示例,获取您自己的Python服务器中"customers"表中的前5条记录:importmysql.connectormydb=mysql.connector.connect(host="localhost",user="yourusername",password="yourpassword",......
  • mysql set column sha2(uuid(),512) as column default value via trigger
    mysql>showcreatetablet3;+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------......
  • Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communicatio
    1、错误原因项目测试Swagger的时候,接口请求一直在那转,出不来数据,其他的配置都正常呀,我就很纳闷,今天记录一下。com.mysql.cj.jdbc.exceptions.CommunicationsException:CommunicationslinkfailureThelastpacketsentsuccessfullytotheserverwas0millisecondsago.The......
  • refcount_t API 与 atomic_t 的比较 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/core-api/refcount-vs-atomic.htmlrefcount_tAPI与atomic_t的比较介绍相关的内存排序类型函数比较非“读/修改/写”(RMW)操作基于增量的操作,不返回值基于减量的RMW操作,不返回值基于增量的RMW操作,返回值通用的减......
  • 导出MySQL数据字典
    使用SQL语句的形式在可视化工具(如使用Navicat)中执行以下语句,然后将查询结果导出为表格USEinformation_schema;SELECTT.TABLE_SCHEMAAS'数据库名称',T.TABLE_NAMEAS'表名',T.TABLE_TYPEAS'表类型',T.ENGINEAS'数据库引擎',C.ORDINAL_POSITIONAS'字段编号',......