"count统计有哪些方式,性能优先级如何?"

count统计有哪些方式,性能优先级如何?

  • count(主键id),innodb会遍历整张表,将主键id上的值都取出来,返回给server层,server层判断不为null的前提下,按行累加
  • count(1),innodb遍历整张表,不取值。返回给server层,server层对于返回的每一行,都会放一个数字1 进去,不为空的话按行累加
  • count(字段),看字段默认是否允许为null,分别进行判断
  • count(*),不会将全部字段取出来,专门做了优化,不取值。肯定不是null,按行累加

性能:count(*) > count(1) > count(主键) > count(字段)

PS:写作不易,如要转裁,请标明转载出处。
登录
注册
回顶部