问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
不知道我对你的问题理解的对不对,简单说下我的想法,仅供参考:
innodb的话没必要count冗余吧,InnoDB支持事务,其中大部分操作都是行级锁,所以可能表的行数可能会被并发修改,那么缓存记录下来的总行数就不准确了。
MySQL 8.0.13开始,针对InnoDB的SELECT COUNT(*) FROM tbl_name语句,我们知道COUNT(*)的目的只是为了统计总行数,所以他根本不关心自己查到的具体值,那么MySQL会优先选择最小的非聚簇索引来扫表以达到大大节省时间的目的,当然前提是查询语句中不包含WHERE或GROUP BY等条件。
评论
有用 1
墨值悬赏