select count(*)和select count(1)的区别

转载 2016年06月02日 10:08:15

转自:http://blog.csdn.net/hzhsan/article/details/9186831

一般情况下,Select Count (*)和Select Count(1)两着返回结果是一样的

假如表沒有主键(Primary key), 那么count(1)比count(*)快,

如果有主键的話,那主键作为count的条件时候count(主键)最快

如果你的表只有一个字段的话那count(*)就是最快的

count(*) 跟 count(1) 的结果一样,都包括对NULL的统计,而count(column) 是不包括NULL的统计

1、select 1 与 select *的区别
selelct 常量 from ... 对应所有行,返回的永远只有一个值,即常量。所以正常只会用来判断是否有还是没有(比如exists子句)。而select * from ... 是返回所有行的所有列。
性能上的差异,关键看你的from和where子句。比如说如果你的where条件中可以通过索引,那显然 select 1 from ... 的性能比 select * from ... 好。
2、select sum(1)的使用
select count(*)返回所有满足条件的记录数,此时同select sum(1)
但是sum()可以传任意数字,负数、浮点数都可以,返回的值是传入值n*满足条件记录数m

select count(*)、count(1)、count(主键列)和count(包含空值的列)有何区别?

下班路上看见网上有人问一个问题: oracle 10g以后count(*)和count(非空列)性能方面有什么区别? 乍一看,确实有些含糊,Oracle中往往小问题蕴含着大智慧,如何破云见日?最直...
  • bisal
  • bisal
  • 2017年02月14日 00:11
  • 2124

Select count(*)和Count(1)的区别和执行效率比较

在MySQL中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的。经常会看到一些所谓的优化建议不使用Count(* )而是使用Cou...
  • see__you__again
  • see__you__again
  • 2016年03月31日 21:54
  • 2187

oracle中关于count(1)、count(*)、count(rowid)、count(某个字段)使用上的区别和性能问题

区别 count()是oracle中的聚合函数,用于统计结果集的行数。count(1)、count(*)、count(rowid)这三种使用方式的统计的行数量都会包括null行。count(某个字段...
  • fly_zxy
  • fly_zxy
  • 2016年10月12日 16:06
  • 5284

php学习之道:mysql SELECT FOUND_ROWS()与COUNT(*)用法区别

在mysql中 FOUND_ROWS()与COUNT(*)都可以统计记录,如果都一样为什么会有两个这样的函数呢,下面我来介绍SELECT FOUND_ROWS()与COUNT(*)用法区别 SEL...
  • u011511429
  • u011511429
  • 2014年07月04日 15:07
  • 3759

Select count(*)和Count(1)的区别和执行方式

Select count(*)和Count(1)的区别和执行方式     在SQL Server中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多...
  • evilcry2012
  • evilcry2012
  • 2016年04月22日 11:17
  • 194

Select count(*)和Count(1)的区别和执行方式

Select count(*)和Count(1)的区别和执行方式     在SQL Server中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对...
  • snowpage
  • snowpage
  • 2015年07月25日 13:36
  • 237

Select count(*)和Count(1)的区别和执行方式

在SQL Server中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的。本文会阐述这三者的作用,关系以及背后的原理。     ...
  • tianshui121
  • tianshui121
  • 2015年08月22日 23:12
  • 287

UPDATE {0} SET DisplayOrder=(SELECT COUNT(1) FROM {0} b WHERE b.DisplayOrder<a.DisplayOrder AND {1})

using System;using System.Configuration;using System.Data;using System.Data.SqlClient;using System.C...
  • mayanjun19701108
  • mayanjun19701108
  • 2011年07月24日 13:37
  • 1749

Grails技巧系列——GORM中select结果进行count的方法

《Grails技巧系列》将介绍笔者在Grails开发中总结的一些经验。这里将避免重复官方文档中的内容,希望能够以短小的文章给读者更多有价值的内容。  GROM是Grails框架提供的一种O/R ...
  • froole
  • froole
  • 2013年05月02日 15:13
  • 3598

通过非聚集索引让select count(*) from 的查询速度提高几十倍、甚至千倍

通过非聚集索引,可以显著提升count(*)查询的性能。 有的人可能会说,这个count(*)能用上索引吗,这个count(*)应该是通过表扫描来一个一个的统计,索引有用吗? ...
  • gtosky4u
  • gtosky4u
  • 2015年12月02日 14:26
  • 744
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:select count(*)和select count(1)的区别
举报原因:
原因补充:

(最多只允许输入30个字)