从hive表中的2.3亿条记录中获取更多的时间来过滤mysql

时间:2017-07-08 10:22:04

标签: mysql sql hadoop hive tez

我正在使用np.array()表来执行一个sql来从2.3亿条记录中获取一些记录,但是使用map reduce进程需要300秒才能执行,而hive只需少量获取此信息1秒。为什么mysql需要更多时间?

我正在使用hive群集与Ambari引擎。我很困惑在Tez移动数据库。

1 个答案:

答案 0 :(得分:2)

特定查询中,MySQL可能比Hive表现更好的原因有很多。从这个意义上讲,您的查询过于宽泛。

最可能的原因是MySQL中的索引。如果您有大量数据,MySQL可以使用索引优化查询。 Hive读取所有数据并对其进行处理。 MySQL可以优化正在处理的数据。

还有其他原因。如果数据存储在分区中,那么MySQL可能会基于where子句更好地进行分区修剪。

在不知道数据和查询的情况下,没有概括性。对于单个查询,这并不太令人惊讶。通常,Hive在需要处理大量数据的查询上会更快。