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

k2fxgqgv  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(203)

所以,对于一个数据集,我有两个表,分别是未分区表和分区表。
当我看到分区数据的报告时,累计cpu时间显著减少,但所花费的总时间与未分区数据相同。
为什么会这样?

ffx8fchx

ffx8fchx1#

因为这是一个严格的理论问题,你会得到一个严格的理论答案。分区导致表被拆分为具有相同结构的较小表。这让你的 SELECT 在不同表上执行的查询(有效 SELECT * FROM table_part1 UNION ALL table_part2SELECT * FROM table ).
总的时间将是相同的,因为您正在读取相同数量的数据。你可以把 table_part1 以及 table_part2 在不同的物理磁盘上,这可能会使读取速度更快,因为您将有更少的io等待。但一般来说,对于在同一表空间中分区的表,您将看到两个查询(分区和未分区)的时间相当。
至于cpu,我们可以推测有一些优化,使操作更小的表更容易。分区表可能更适合内存(包括cpu缓存)。在这种情况下,结果可能取决于初始表和分区表的大小—对于两侧的超大表,无论哪种方式,最终的cpu负载都可能相同。

相关问题