在算法中,各个排序算法的复杂度都比较高,正常情况下为O (nlogn) ,所以当数据量特别大的时候,对数组进行排序消耗都很大. 因为hive的计算引擎MapReduce是分布式系统, 利用分布式的特点,可以对排序的数据各个机器节点内有序,再做归并排序, 虽然这样做的复杂度还是O (nlogn) , 但是对比老版本hive的做法,改善不少. 老版本hive的order by并不是做归并排序,而是将所有数据都集合到一台机器上,然后做一个全局排序, 这样做的缺点就是, 一个没办法利用分布式系统的并发计