count(*)、count(1)和count(列名)
来源:互联网 发布:数据科学专业 编辑:程序博客网 时间:2024/05/21 10:33
count(列名):统计该列不为null值的行数
count(*):统计所有行的行数,包括 NULL 值和重复项。
count(1):同count(*)
效率(知乎链接:https://www.zhihu.com/question/19641756/answer/19810133):
1.除非要统计某列非空值的总数,否则任何情况一律用COUNT(*),效率比COUNT(列名)高很多
2.除非有特殊需要,否则COUNT(*)不要加WHERE条件,会严重影响效率,如果加了条件COUNT(*)和COUNT(主键)效率是一致的,COUNT(非主键)效率很低
3.在没有WHERE条件的情况下:COUNT(*)等于COUNT(主键)优于COUNT(非主键有索引)优于COUNT(非主键无索引)
4.只要加了WHERE就会降低效率,即使是WHERE 1=1
2.除非有特殊需要,否则COUNT(*)不要加WHERE条件,会严重影响效率,如果加了条件COUNT(*)和COUNT(主键)效率是一致的,COUNT(非主键)效率很低
3.在没有WHERE条件的情况下:COUNT(*)等于COUNT(主键)优于COUNT(非主键有索引)优于COUNT(非主键无索引)
4.只要加了WHERE就会降低效率,即使是WHERE 1=1
mysql> select * from tmp2;
+------+------+
| id | name |
+------+------+
| 1 | a |
| NULL | NULL |
| NULL | NULL |
mysql> select count(id) from tmp2;
+-----------+
| count(id) |
+-----------+
| 1 |
+-----------+
1 row in set (0.01 sec)
mysql> select count(*) from tmp2;
+----------+
| count(*) |
+----------+
| 3 |
+----------+
1 row in set (0.01 sec)
mysql> select count(1) from tmp2;
+----------+
| count(1) |
+----------+
| 3 |
+----------+
1 row in set (0.00 sec)
阅读全文
0 0
- count(*)、count(1)和count(列名)
- count(*) 和 count(1)和count(列名)区别
- count(*) 和 count(1)和count(列名)区别
- count(*) 和 count(1)和count(列名)区别
- select count(*) 和 count(1),count(列名)区别
- sql中count(0),count(1),count(),count(列名)
- 【数据库】count(*),count(1)和count(列)
- count(*)和count(列)
- count(1)、count(*)与count(列名)的执行区别
- count(1),count(*)和count(列名)三者的区别
- count(*),count(1)和count(列)的区别
- COUNT(*)与COUNT(列名)的区别
- count(列名)与count(*)说明
- count(),count(1),count(*)
- count(column) 和 count(*)和count(1)
- count(*),count(1)和count(field)区别
- count(*),count(1)和count(field)区别
- count(1)和count(*)的区别
- docker挂载本地目录和数据卷容器
- nginx配置upstream实现负载均衡
- nginx rewrite规则实例讲解
- centos 下nginx源码编译安装
- 【剑指offer】题31:最大连续数组之和
- count(*)、count(1)和count(列名)
- 编程人士的探索之路(一)
- nginx 官方docker镜像使用教程
- nginx配置反向代理示例
- centos7 取消自动锁屏
- Linux网络编程socket错误分析
- mysql 官方docker镜像使用教程
- php 图片剪切
- php 两种短网址生成方法