[MySQL]sql语句count操作效率排序count(*) count(1) count(主键id) count(字段)
2023-02-18 15:36:28 时间
结论:
count(*)>count(1)>count(主键id)>count(字段)
原因:
count(*)单独做过优化,只扫描普通索引树,并且不会取值,按行累加
count(1)遍历表放一个数字“1”进去,判断是不可能为空的,按行累加
count(主键id)遍历表,解析数据把id值取出来,按行累加
count(字段)遍历表,解析数据,判断是否为null,按行累加,如果不是索引的更慢
引擎差异:
innodb表引擎的都要遍历表,因为存在事务下的mvcc机制的原因
myisam引擎的count(*)直接存储了值,不需要遍历直接取值所以最快
相关文章
- springbootdruidmybatismysql多数据源事务管理
- MySql大小写配置
- Redis集群搭建
- 传统Spring配置JTA 实现多数据源事务的统一管理
- Oracle定时任务
- Oracle查看锁表和解锁
- Mybatis resultMap和resultType的区别
- WebService如何封装XML请求 以及解析接口返回的XML
- Maven手动将jar导入本地仓库
- 初入SG-UAP
- sg-uap常用注解介绍
- Docker 阿里云镜像加速
- Elasticsearch 读时分词、写时分词
- SecureFX中文目录乱码问题解决方案
- 分布式事务
- 分布式CAP定理
- MySQL5.5安装教程
- Oracle数据库之FORALL与BULK COLLECT语句
- 代理模式详解(静态代理和动态代理的区别以及联系)
- Shiro 登录认证源码详解