從執行結果來說:
count(1)和count(*)之間沒有區別,因為count(1)、count(*)都不會去過濾空值,但count(列名)就有區別了,因為count(列名)會去過濾空值null。
從執行效率來說:
他們之間根據不同情況會有些許區別,MySQL會對count(*)做最佳化。
如果列為主鍵,count(列名)效率優於count(1)
如果列不為主鍵,count(1)效率優於count(列名)
如果表中存在主鍵,count(主鍵列名)效率最優
如果表中只有一列,則count(*)效率最優
如果表有多列,且不存在主鍵,則count(1)效率優於count(*)