【发布时间】:2015-03-03 17:48:03
【问题描述】:
大家好,我是SQL 的新手?
SQL中的count(*)和count(1)有什么区别?
谢谢
【问题讨论】:
大家好,我是SQL 的新手?
SQL中的count(*)和count(1)有什么区别?
谢谢
【问题讨论】:
没有区别。
Select Count(*) from TableName
Select Count(1) from TableName
人们普遍认为 Count(1) 比 Count() 性能更好,但事实并非如此。如果您通过查看执行计划进行测试,您将看到命令执行的操作相同,并且扫描的行数相同。 count() 的 CPU 使用时间可能略有不同,但与 count(1) 几乎相同。混淆通常是因为在旧版本的某些 RDBMS 产品(如 Oracle)中,select count(*) 和 count(1) 的性能存在差异,但最近的版本没有任何差异。
参考这个: http://www.sqlserverf1.com/difference-between-select-count-and-count1-in-sql-server/
和
【讨论】:
SELECT * 通常比SELECT 1 或SELECT intColumn 更昂贵。当然,COUNT(*) 在解析器/引擎中会有特定的优化代码,它会认识到不需要获取每一列的内容。