在MySQL InnoDB存储引擎中,COUNT(*)和COUNT(1)都是对的所有结果进行的COUNT。
如果有WHERE子句,则是对所有符合筛选条件的数据行进行统计。
如果没有WHERE子句,则是对数据表的数据行数进行统计。
因此COUNT()和COUNT(1)本质上没有区别,执行的复杂度都是O(N),也就是采用全表扫描,进行循环+计数的方式进行统计。
需要注意的是,在实际执行中COUNT()和COUNT(1)执行时间可能略有差别,不过你还是可以把这两个在执行效率上看成是相等的。
参考
https://blog.csdn.net/william_n/article/details/82977406