看到 这个字符的时候,是不是大家觉得是读取记录中的所有字段值?
    对于 selete
    这条语句来说是这个意思,但是在 count() 中并不是这个意思。
    **count(
    ) 其实等于 count(0),也就是说,当你使用 count() 时,MySQL 会将 参数转化为参数 0 来处理。
    count(*) 执行过程是怎样的? - 图1
    所以,
    count() 执行过程跟 count(1) 执行过程基本一样的**,性能没有什么差异。
    在 MySQL 5.7 的官方手册中有这么一句话:
    _InnoDB handles SELECT COUNT(
    ) and SELECT COUNT(1) operations in the same way. There is no performance difference.
    翻译:InnoDB以相同的方式处理SELECT COUNT()和SELECT COUNT(1)操作,没有性能差异。_
    而且 MySQL 会对 count(
    ) 和 count(1) 有个优化,如果有多个二级索引的时候,优化器会使用key_len 最小的二级索引进行扫描。
    只有当没有二级索引的时候,才会采用主键索引来进行统计。