当前位置: 主页 > 数据库

数据库count 1-mysql count(1) count(*)区别

发布时间:2023-02-08 22:41   浏览次数:次   作者:佚名

在数据库的使用中数据库count 1,Count()函数用于统计数据表的记录数,返回符合指定条件的行数。

三个Count()函数count(1),count(*),count(列名)区别1,count(1),count(*)

当数据表的数据量很大时,使用count(1)比count(*)分析数据表需要更多的时间。 从执行计划来看,count(1)和count(*)的效果是一样的,但是count(1)的实际执行时间比较少(1w以内的数据量)。 如果count(1)是聚簇索引,id,肯定比count(1)快,但差别很小。 因为count(*)会自动优化赋值给某个字段,所以没必要用count(1),而count(*)sql会帮你完成优化,所以count(1)基本没区别) 和计数 (*)!

count 1 与count 效率_mysql count(1) count(*)区别_数据库count 1

2. count(1), count(列名)

count 1 与count 效率_数据库count 1_mysql count(1) count(*)区别

两者的主要区别在于:count(1)统计数据表中所有记录的条数,包括字段为null的记录; count(列名) 统计该字段在表中出现的次数,当该字段为null时将忽略,不统计空记录。

count 1 与count 效率_数据库count 1_mysql count(1) count(*)区别

3. count(1), count(*), count(列名)

数据库count 1_mysql count(1) count(*)区别_count 1 与count 效率

在执行效果方面:

数据库count 1_mysql count(1) count(*)区别_count 1 与count 效率

在执行效率方面:

count(primary key) 不一定比 count(rest indexes) 快:

索引是一个B+树结构,以块为单位存储。 假设块大小为1K数据库count 1,主键索引大小为4B,有一个字段A,索引大小为2B。 同一个block可以存储256个主键索引,但是可以存储512个字段A的索引。假设总数据为2K,则表示主键索引占用8个block,而A字段索引占用4个block。 使用主键索引进行统计时,需要经历更多的块,更多的IO次数,效率比A字段索引慢。

Count() 函数总结