Hive,分区数据库与未分区数据库所用的时间

时间:2018-11-25 23:13:53

标签: mysql database hive

因此,我有2个数据集表,分别是未分区表和分区表。

当我看到分区数据的报告时,累积的CPU时间显着减少,但与未分区的数据相比,所花费的总时间是相同的。

这是为什么?

1 个答案:

答案 0 :(得分:1)

由于这是一个严格的理论问题,您将获得一个严格的理论答案。分区会导致将一个表拆分为具有相同结构的较小表。这使您的SELECT查询可以在不同的表上执行(有效地SELECT * FROM table_part1 UNION ALL table_part2SELECT * FROM table)。

由于要读取相同数量的数据,因此总时间相同。您可以将table_part1table_part2放在不同的物理磁盘上,这可能会使读取速度更快,因为您的IO等待时间更少。但是通常,对于在同一表空间中分区的表,您将看到两个查询(分区和未分区)的可比较时间。

对于CPU,我们可以推测已经进行了一些优化,使操作较小的表变得更加容易。分区表可能会更好地适合内存(包括CPU缓存)。在这种情况下,结果可能取决于初始表和分区表的大小-对于两侧的超大表,您可能会以两种方式最终承受相同的CPU负载。