COUNT 1 和COUNT 的區別

2021-10-04 04:59:51 字數 651 閱讀 1655

兩者本質上沒有任何區別。

參見mysql 參考手冊

innodbhandlesselect count(*)andselect count(1)operations in the same way. there is no performance           difference.

一、count情況

1、count(1):可以統計表中所有資料,不統計所有的列,用1代表**行,在統計結果中包含列字段為null的資料;

2、count(字段):只包含列名的列,統計表**現該字段的次數,並且不統計欄位為null的情況;

3、count(*):統計所有的列,相當於行數,統計結果中會包含字段值為null的列;

二、count執行效率

列名為主鍵,count(列名)比count(1)快;列名不為主鍵,count(1)會比count(列名)快;

如果表中多個列並且沒有主鍵,則count(1)的執行效率優於count(*);

如果有主鍵,則select count(主鍵)的執行效率是最優的;如果表中只有乙個字段,則select  count(*)最優。

count 和count 1 的區別

create table test1 id number,name varchar2 50 create time date 插入1000000條資料。begin for i in 1 10000000 loop insert into test1 values i,dba fashion測試 i,...

count 1 和count 的區別

count 1 和count 的區別,對這個問題有疑問的可以看看 count 1 其實就是計算一共有多少符合條件的行。1並不是表示第乙個字段,而是表示乙個固定值。我們可以想成表中有這麼乙個字段,這個字段就是固定值1,count 1 就是計算一共有多少個1.同理,count 2 count 3 得到的...

count 1 和count 哪個高效?

當表的資料量大些時,對錶作分析之後,使用count 1 還要比使用count 用時多了!從執行計畫來看,count 1 和count 的效果是一樣的。但是在表做過分析之後,count 1 會比count 的用時少些 1w以內資料量 不過差不了多少。如果count 1 是聚索引,id,那肯定是coun...