有時候總認為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 函式
1.count 函式是用來統計表中記錄的乙個函式,返回匹配條件的行數。2.count 語法 1 count 包括所有列,返回表中的記錄數,相當於統計表的行數,在統計結果的時候,不會忽略列值為null的記錄。2 count 1 忽略所有列,1表示乙個固定值,也可以用count 2 count 3 代替...
MySql中的count函式
1.count 函式是用來統計表中記錄的乙個函式,返回匹配條件的行數。2.count 語法 1 count 包括所有列,返回表中的記錄數,相當於統計表的行數,在統計結果的時候,不會忽略列值為null的記錄。2 count 1 忽略所有列,1表示乙個固定值,也可以用count 2 count 3 代替...
mysql中的count 函式
1.count 函式是用來統計表中記錄的乙個函式,返回匹配條件的行數。2.count 語法 1 count 包括所有列,返回表中的記錄數,相當於統計表的行數,在統計結果的時候,不會忽略列值為null的記錄。2 count 1 忽略所有列,1表示乙個固定值,也可以用count 2 count 3 代替...