1.count(*) ,count(1), count(字段)有什么差别,执行效率有什么区别。

count(主键字段),当没有二级索引的时候,InnoDB 循环遍历聚簇索引,将读取到的记录返回给 server 层,然后读取记录中的 id 值,就会 id 值判断是否为 NULL,如果不为 NULL,就将 count 变量加 1。
当有二级索引的时候,会走二级索引,因为二级索引树比聚簇索引树小,这样遍历二级索引树就会减少IO次数,优化器决定走二级索引。
count(0),count(1),和count(主键字段)别无二致,知识count(1)不用判空,所以效率略高。

count(字段)会进行全表扫描,效率最差。
优化count(*)取近似值

执行 explain 命令效率是很高的,因为它并不会真正的去查询,下图中的 rows 字段值就是 explain 命令对表 t_order 记录的估算值。


或者建一张表,专门存储各个表的行数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值