MySQL InnoDB count()函数
1. 系统版本
MySQL 5.7.25,Ubuntu 16.04
2. count()函数
2.1 count(*)
count(*)用于计算数据表的行数。
2.1.1 MyISAM实现方式
MyISAM将数据表的总行数存储在磁盘,当有sql语句调用count(*)时,MyISAM能直接返回表的总行数。但是,当sql语句有WHERE
语句限制查询行数时,MyISAM要重新算符合WHERE语句的数据表的行数,并不能直接返回行数。
2.1.2 InnoDB实现方式
InnoDB的隔离级别是可重复读,支持MVCC,其数据表的行数无法预先确定,只能通过执行查询的时候才能确定当时的行数,故InnoDB无法预先存储数据表的行数。对于每个count(*),InnoDB需要重新计算数据表的行数。
与此同时,MySQL对count(*)进行了优化。
2.2 count(1)、count(主键)以及count(column)的区别
本节仅针对InnoDB引擎的情况下开展。
2.2.1 count(1)
InnoDB会遍历整张表,但不获取具体的值,server层每获取一行,判断不为空的,就+1。可等价为返回数据表总行数。
2.2.2 count(主键)
InnoDB会遍历整张表,并获取每一行的主键,server层每获取一个主键,判断不为空,就+1。可等价为返回数据表总行数。
2.2.3 count(column)
该形式下的函数返回该字段不为null的行数。
InnoDB会判断字段定义是否为not null:
若为not null,则遍历整张表,获取每一行所对应的字段值,返回给server层,server层进行累加,每次累加值为1;
若字段可以为空,则依次取出每一行对应的字段后,server层需要额外判断取出的值是否为空,若不为空,则+1。
3. 执行效率
使用InnoDB的前提下,执行效率如下:
count(*)≈count(1)>count(主键)>count(1)
MySQL InnoDB count()函数相关推荐
- mysql数据库中count的作用_详解 MySQL中count函数的正确使用方法
1. 描述 在MySQL中,当我们需要获取某张表中的总行数时,一般会选择使用下面的语句 select count(*) from table; 其实count函数中除了*还可以放其他参数,比如常数.主 ...
- mysql的count函数类型是什么意思_详细解读MySQL中COUNT函数的用法
MySQL的COUNT函数是最简单的功能,非常有用的计算,预计由一个SELECT语句返回的记录数. 要了解COUNT函数考虑的EMPLOYEE_TBL的的表具有以下记录: mysql> SELE ...
- mysql的count函数类型是什么意思_MySQL中的COUNT函数,你理解多少
前言:COUNT函数相比大家都不陌生,接触过数据库的兄弟们想必都用过,但是,就是这个常用的COUNT函数,却暗含许多玄机. 1.COUNT简介 看看官网对COUNT的简介 大致意思是:COUNT(ex ...
- mysql的count()函数如何选择索引,千万级表的count()查询优化实例
文章目录 一.前言 1.网上的主要两种说法 2.不贴出mysql版本的测试都是耍流氓~ 3.mysql的count(*)和count(1) 二.测试索引长度和索引基数对count(*)查询的影响 1. ...
- mysql的count函数统计错误问题
使用mysql的时候需要用到count函数,但是发现count函数总是统计不正确.通过查询资料发现,count('任意内容')都会统计出所有记录数,因为count只有在遇见null时不计数,即coun ...
- pg数据库与MySQL的count函数_postgresql数据库连接数和状态查询操作
查看数据库的当前连接数和状态的几种方式: 只是能看出数据库服务是否正在运行和启动路径 pg_ctl status 统计当前postgresql相关进程数,在大体上可以估算数据库的连接数,非精准,但是目 ...
- mysql的count函数可以加表达式嘛_power bi15——power pivot的DAX表达式
power pivot的DAX表达式内容包括2部分: power pivot的DAX表达式概述 power pivot的DAX表达式练习 问题: 用数据透视表求出每名销售人员手中高赢单率低风险商机金额 ...
- MySQL中count是什么函数_MySQL中
本篇文章给大家带来的内容是关于mysql大表中count()的用法以及mysql中count()的优化,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.一个单表中包含有6000w+的数据 ...
- mysql count函数加条件总结
文章目录 前言 测试环境 准备工作 条件统计 总结 前言 最近发现在处理Mysql问题时,count()函数频繁上镜,常常出现在分组统计的情景下,但是有时候并不是使用group by分好组就可以直接统 ...
最新文章
- linux进程中对信号的屏蔽,linux进程中的信号屏蔽
- 部署LAMP-WordPress站点上线
- Ubuntu 12.04 如何切换回英文
- android项目打包成apk
- 消除代码中的坏味道,编写高质量代码
- Seek the Name, Seek the Fame POJ - 2752 (理解KMP函数的失配)既是S的前缀又是S的后缀的子串
- c# 读hex_在C#中将string转换为hexstring
- mysql Slave is not configured or failed to initialize properly. You must at least set --server-id
- PowerDesigner导出Report通用报表
- avue下拉框中属性可以显示,但不能选中
- LeetCode:砖墙【554】
- (89)Verilog HDL系统函数和任务:$fwrite
- 收回扣、打麻将、开赌场?比亚迪自曝多名员工贪污腐败
- Confluence 6 访问日志脚本
- python 在Excel中新增一列
- mac修改国内镜像源
- matlab ode45 二阶微分方程,ode45解二阶微分方程
- MVC 原理和框架图
- java-贪吃蛇小游戏
- 境内股指期货品种、合约类型和周期规律简介
热门文章
- .NET 指南:使用可变数量的参数的成员
- Python爬虫_BeauifulSoup
- js 控制 Windows Media Player
- 学成在线案例——黑马程序员pink老师\思路讲解\完整源代码
- LeetCode--26. 删除排序数组中的重复项(双指针,暴力)
- Vue (响应式原理-模拟-1-vue)
- 7-20 打印九九口诀表 (15 分)
- php 解析 标记,如何使用PHP-simple-HTML DOM解析器获取标记的属性
- 基于Java的账号、密码登陆页面及验证
- php 价格计算方法,PHP算法逻辑:如何计算购买量?