count(*) 和count(column)之區別

lwitpub發表於2012-12-06

select count (*)、count(1)、count(column)的區別如下:

•count(1) 中的 1 並不是表示為第一個 column
•count(*) 跟 count(1) 的結果一樣,包括對NULL的統計
•count(column) 是不包括對NULL的統計
•如果表沒有主鍵(Primary key), 那麼count(1)比count(*)快
•如果表沒有主鍵,只建了索引,那麼count(*),count(1)是一樣的,都是TABLE ACCESS FULL ,而count(索引)則是INDEX FULL SCAN
•如果有主鍵的話,那count(主鍵)最快,那麼count(*),count(1),以及count(主鍵)是一樣的,都是INDEX FULL SCAN
•如果你的表只有一個欄位的話那count(*)就是最快的

參考下官網上的有關問答:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/628922/viewspace-750697/,如需轉載,請註明出處,否則將追究法律責任。

相關文章