sql - 为什么在 hive 中 Select Count(*) 比 Select * 慢

2025-06-14 15:42:46

世界杯歌

Hive 查询可以执行三种类型的操作。 按照最便宜和最快到更昂贵和更慢的顺序,它们在这里。 配置单元查询可以是仅元数据请求。 显示表、描...

Hive 查询可以执行三种类型的操作。

按照最便宜和最快到更昂贵和更慢的顺序,它们在这里。

配置单元查询可以是仅元数据请求。

显示表、描述表是示例。在这些查询中,hive 进程在元数据服务器中执行查找。元数据服务器是一个 SQL 数据库,可能是 MySQL,但实际的数据库是可配置的。

蜂巢查询可以是 hdfs 获取请求。从表中选择 * 就是一个例子。在这种情况下,hive 可以通过执行 hdfs 操作来返回结果。hadoop fs -get,或多或少。

Hive 查询可以是 Map Reduce 作业。

Hive 必须将 jar 运送到 hdfs,jobtracker 将任务排队,tasktracker 执行任务,最终数据放入 hdfs 或运送到客户端。

Map Reduce 作业也有不同的可能性。

它可以是地图唯一的工作。Select * from table where id > 100 ,例如,所有这些逻辑都可以应用于映射器。

可以是 Map 和 Reduce 作业,从 table 中选择 min(id);Select * from table order by id ;

它也可以导致多次map Reduce pass,但我认为上面总结了一些行为。