mysql中count(1) ?,还是count(*) ?关于count的那些事
关于count()的那些事
不同的执行引擎
MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count() 的时候会直接返回这个数,效率很高;
InnoDB 它执行 count() 的时候,需要把数据一行一行地从引擎里面读出来,然后累积计数。
那为什么 InnoDB 不跟 MyISAM 一样,也把数字存起来呢?这是因为即使是在同一个时刻的多个查询,由于多版本并发控制(MVCC)的原因,InnoDB 表“应该返回多少行”也是不确定的。并且一般业务中查询可能是有条件。
比如:t表一共10000条数
原创
2021-12-03 16:40:03 ·
245 阅读 ·
1 评论