2014-04-24 43 views
2

COUNT(*)和COUNT(table.ColumnName)有什麼區別?COUNT(*)和COUNT(table.ColumnName)之間有什麼區別?

我一直認爲將列名作爲COUNT的參數會更快,但現在當我想到它時,我真的不知道,因爲*意味着該函數計算行數,所以可能沒有有什麼區別?或者,也許給一個特定的列名甚至會減慢過程?

+3

閱讀成績[COUNT(*)vs COUNT(col)](http://www.mysqlperformanceblog.com/2007/04/10/count-vs-countcol/) –

回答

5

這兩者之間的差異不是(主要)表現。他們算不同的東西:

COUNT(*)計數您的表中的行。

COUNT(column)統計列中的條目 - 忽略null值。

當然,這兩者之間會有性能差異,但如果他們做了不同的事情,這是可以預料的。特別是當該列允許值爲null時,查詢將花費的時間比不列的列(或COUNT(*))長。

相關問題