查询同一张表,不考虑是否有null ,以下是实测模拟百万级用户量多次执行查询,分别执行时间的区间:
select count(*) from usero; 0.516s-0.566s select count(1) from usero; 0.507s - 0.569s select count(id) from usero;主键 0.655s-0.707s select count(name) from usero; 普通索引 0.701-0.747s select count(phone) from usero; 非索引 1.041s-1.138s
ps:
1.count(*) mysql会转为 count(1), count(ID)只会计算 not null值;
2.count(1)代表查询的表里的第一个字段。(有争议:另一种理论是主键,个人认为前一种);
3.使用explain 查看sql执行是否使用索引,count(*) count(1) count(id) count(name) => Using Index;
参考:https://www.zhihu.com/question/19641756
相关文章:
,请先登录查看所有评论- Navicat 操作数据库传输 2015-09-29
- Windows7 x86系统下安装MySQL5.5 2015-07-27
- 详解MySQL的操作日志 2015-04-15
- MySQL常用存储引擎MyIsam和InnoDB的比较 2015-03-30
- 书写Sql文件时常用的注释 2015-03-23
网友评论已关闭