示例表的結構:的Sql COUNT性能問題
Id, Integer (PK)
Name, Varchar(100)
Description, Text
我需要知道,如果在兩者之間的性能存在差異:
SELECT COUNT(*) FROM Example;
和
SELECT COUNT(Id) FROM Example;
或者不存在差異?
示例表的結構:的Sql COUNT性能問題
Id, Integer (PK)
Name, Varchar(100)
Description, Text
我需要知道,如果在兩者之間的性能存在差異:
SELECT COUNT(*) FROM Example;
和
SELECT COUNT(Id) FROM Example;
或者不存在差異?
差異在性能和實際結果集存在
檢查解釋計劃:做的結果是來自該表或從元數據(例如INFORMATION_SCHEMA)?:的差異可能是非常小的。
我相信是有區別的;取決於你的桌子的大小,它可能可以忽略不計,或者它可能很重要。
這可能是最慢的:SELECT COUNT(*)FROM例
這是在中間:SELECT COUNT(同上)實例
這將是最快的:SELECT COUNT(1)實例
也取決於你想要計數。例如,Id可能永遠不會爲null(如果您正確地做),但count(*)將只計算沒有空值的行。 – tsilb 2009-11-17 13:42:44
因爲id是PK,所以(希望!)不太可能會包含NULL,我認爲這是結果的主要區別。 – davek 2009-11-17 13:25:12
謝謝,我沒有找到這個問題。 – Cesar 2009-11-17 13:27:34
@davek - 由於'id'是PK,所以不允許它包含空值。這個答案是不正確的。性能和結果集將是相同的。 – 2012-10-22 10:34:34