码迷,mamicode.com
首页 > 数据库 > 详细

mysql中的count()函数使用

时间:2017-09-27 20:49:37      阅读:357      评论:0      收藏:1      [点我收藏+]

标签:col   opera   sql   span   效率   字段   com   select   val   

有时候总认为count(*)会比count(1)或者count(column name)慢,事实上是分情况处理。

比如:

---初始化语句

建立一张表并插入数据:

 

create table test2 (id BIGINT PRIMARY key, name varchar(24))ENGINE=INNODB;

insert into test2(id,name)values(1,null);

insert into test2(id,name)values(2,‘name1‘);

insert into test2(id,name)values(3,‘name2‘);

执行下面的select语句:

select count(*) from test2 ;  //结果是:3

select count(id) from test2 ; //结果是:3

select count(name) from test2 ; //结果是:2

select count(name) from test2 where name is null; //结果是:0

count(1)指的并不是计算1的个数,而是指表的第一个字段,如果第一个字段没有建立索引,他的效率是很低的;

而且count(column name)默认查询的是指定字段非空的个数,如果你想查询数据的所有行数,恰巧指定字段又是

一个可存在空库数据的字段,那么得到的数据就不会是期望的值。再来说一下count(),在上述的count(column name)

查询方式中,如果指定的column为限制为非空,那么mysql会将上述表达式转化为count()来进行查询。所以如果想

要查询数据大小,在mysql中建议使用count(*)来执行,含义明了,速度还快。

 

mysql中的count()函数使用

标签:col   opera   sql   span   效率   字段   com   select   val   

原文地址:http://www.cnblogs.com/aizj/p/7603333.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!