SQL获取行计数优化

时间:2012-01-13 15:17:21

标签: sql database-performance

  

可能重复:
  In SQL, what's the difference between count(column) and count()?
  Count(
) vs Count(1)

我有大表,可以保存长文本,例如电子邮件内容或新闻。而我的问题 计算表行的性能有什么不同:

SELECT COUNT(*) FROM table_name

SELECT COUNT(t.id) FROM table_name as t

哪一个更好?或后者将通过查询优化器进行优化?有没有关于此的文件?

2 个答案:

答案 0 :(得分:2)

他们是不同的。

COUNT(*)将检索所有值(甚至是NULL值计数)。 COUNT(t.id)不计算NULL值。


就性能而言,它们是相同的(查询优化器是智能的)。

答案 1 :(得分:1)

查询计划看起来相同,但在测试中,使用*更快(稍微)。

虽然在指定列名时没有考虑空值。