目录
count(*)不带条件的查询
innoDB
server从引擎里面load出所有的数据来累加统计。一般会找最小的那棵索引树来统计
mySam
把表的数据总量维护在一个磁盘中,直接返回 速度很快
innoDB为啥不学习mySam
MVCC每张表的数据量可能有多个,不同的事务里面查询都有多个结果。
show table status
这个命令会有表的行数,但是不准,他是随机抽一些数据页 来推算总行数
innoDB几种count的对比
工作内容 | ||
count(1) | server从引擎中获取数据,返回的数据直接+1 | |
count(id) | server从引擎中捞取所有数据,如果id不为空 累加统计 | |
count(字段) | 如果字段not null类似count(id) 如果字段可为null,判断下 不为空再累加 | |
count(*) | 把行取出来,不判空,直接累加 |
性能对比
count(字段) < count(id) < count(1) = count(*) ,推荐使用count(*)