mysql count(*)和count(列)速率
Posted Echo正在输入
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql count(*)和count(列)速率相关的知识,希望对你有一定的参考价值。
- count(*)通常是对主键进行索引扫描,count(列)不一定
- count(*)是统计表中所有符合的记录总数,count(列)是计算表中所有符合的列的记录数
- count的时候,如果没有where限制的话,mysql直接返回保存总的记录数,而有where限制的时候,总是要对mysql进行全表遍历
- count(列)中的列如果是主键,则count(列)比count(*)快,否则,count(*)快
- 任何情况下,select count(*) from table是最优选择
- 尽量减少select count(*) from table where 列=‘value‘ 这种查询
- 杜绝select count(列) from table 的出现
- 列的偏移量决定性能,列越靠后,访问的开销越大,count(*)的算法和偏移量无关,所以count(*)最快,count(最后列)最慢
以上是关于mysql count(*)和count(列)速率的主要内容,如果未能解决你的问题,请参考以下文章
MySQL中count是怎样执行的?———count,count(id),count(非索引列),count(二级索引列)的分析