count(1)-count(*)与count(列名)的比较

Alex / 6-4 15:32 / Hive / Tag: hive
count(1),count(*)与count(列名)的比较

数据表没有主键,count(1)比count(*)快
有主键,count(主键)比count(1)和count(*)都快
如果表中只有一个字段的话,那么count(*)就是最快的。。。


count(*) count(1) 两者比较。主要还是要count(1)所相对应的数据字段。
如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。
因为count(*),自动会优化指定到那一个字段。所以没必要去count(1),用count(*),sql会帮你完成优化的  
因此:count(1)和count(*)基本没有差别!

count(*)将返回表格中所有存在的行的总包括值为null,然而count(列名) 将返回表格中除去null以为的所有
行的总数(有默认值的列也会被计入)
discount 列名 得到的结构将是除去null和重复数据后的结果。
+----------+---------------+------+-----+---------+-------+
| Field    | Type          | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| ename    | varchar(20)   | YES  |     | NULL    |       |
| hiredate | date          | YES  |     | NULL    |       |
| sal      | decimal(10,2) | YES  |     | NULL    |       |
| deptno   | int(11)       | YES  |     | NULL    |       |
+----------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)


+---------+------------+----------+--------+
| ename   | hiredate   | sal      | deptno |
+---------+------------+----------+--------+
| lishiyu | 2015-06-04 | 10000.00 |      1 |
| xiaoli  | 2015-06-04 |  8000.00 |      2 |
| shiyu   | 2015-06-04 |     NULL |   NULL |
+---------+------------+----------+--------+

mysql> select count(*) from emp;
+----------+
| count(*) |
+----------+
|        3 |
+----------+


发表留言:

Phthon3.x字符串的方法及注释 Hive中的join
返回顶部
Themes by lishiyu.cn