zoukankan      html  css  js  c++  java
  • SQL中count(*)和count(1)的区别

    要想弄清楚这个问题,那就得先搞清楚COUNT()函数,COUNT()函数可以有如下几种用法:

    1、SELECT COUNT(字段名) FROM 表名;

      解释:统计该字段名不为null的数据总数。

    2、SELECT COUNT(*) FROM 表名;

      解释:统计该数据表中数据总数。

    3、SELECT COUNT(1) FROM 表名;

      解释:统计该数据表中数据总数。

    COUNT(*)和COUNT(1)的区别:

      这俩种方式都可以用来统计表中总数据量,但是他们的实现方式略有不同。

    •   COUNT(*)是统计表中的行(该行数据同时都不为null)的数据总量,也就是说如果有一行所有数据都为null,那么就不会被统计。
    •   COUNT(1)是通过在该表的表结构中添加一列,该列的数据都为1,最终是通过统计该列中有多少个数据为1的数量,即为数据总数。

      在效率方面:

    •   MYISAM存储引擎中,count(*)的效率高,因为该存储引擎中有数据计数器,直接可以获取数据总量;
    •   INNODB存储引擎中,count(*)和count(1)效率差不多,都比COUNT(表名)效率高(因为该方式得判断字段值是否为null);
  • 相关阅读:
    java实现遍历树形菜单方法——service层
    Es 中一个分片一般设置多大
    Too Many Open Files的错误
    线程池队列满导致错误
    ES正在弱化type这个概念
    更新设置api
    遥控器 静音键 点播键
    Byzantine failures
    TGI指数
    墨菲定律(Murphy's Law)
  • 原文地址:https://www.cnblogs.com/smallVampire/p/13992763.html
Copyright © 2011-2022 走看看