不同场景的count(1) vs count(*)
Spark
Spark 下 count(1) 与 count(*) 等价。
Spark下 count(*) 在AST Tree层面直接替换为了count(1).
源码: Astbuilder.scala 1830-1850行附近, (Spark版本号是3.1.)
Hive
MySQL - InnoDB, MyISAM
MyISAM 单独维护一个表用于统计 count的表结果。 (注意, 无where条件)
Spark 下 count(1) 与 count(*) 等价。
Spark下 count(*) 在AST Tree层面直接替换为了count(1).
源码: Astbuilder.scala 1830-1850行附近, (Spark版本号是3.1.)
MyISAM 单独维护一个表用于统计 count的表结果。 (注意, 无where条件)