美文网首页MySQL数据库知识总结
18、 为什么 SELECT COUNT(*) FROM tab

18、 为什么 SELECT COUNT(*) FROM tab

作者: RUMyCola | 来源:发表于2022-08-20 08:31 被阅读0次

为什么 SELECT COUNT(*) FROM table 在 InnoDB 比 MyISAM 慢?

        对于 SELECT COUNT(*) FROM table 语句,在没有 WHERE 条件的情况下,InnoDB 比 MyISAM 可能会慢很多,尤其在大表的情况下。因为,InnoDB 是去实时统计结果,会全表扫描;而 MyISAM内部维持了一个计数器,预存了结果,所以直接返回即可。

        扩展:

               show table status命令        

                show table status命令中的Rows字段也会显示出表的总行数,但是该命令是通过采样统计来计算出的表总行数,因此会有很大的误差。作为参考值还可以,如果要使用精确值,就不推荐了。

相关文章

网友评论

    本文标题:18、 为什么 SELECT COUNT(*) FROM tab

    本文链接:https://www.haomeiwen.com/subject/hmerwrtx.html