mysql 查询 count(*)、count(1)、count(field)的区别.及 order by 同 hive 中 sort by、 cluster by 的区别

目录
  • 1、mysql 查询 count(*)、count(1)、count(field)的区别
  • 2、mysql中 order by 同 hive 中 sort by、 cluster by 的区别

1、mysql 查询 count(*)、count(1)、count(field)的区别

  • count(*)对行的数目进行计算,包含NULL ;
  • count(1)这个用法和count(*)的结果是一样的;
  • count(field)对特定的列的值具有的行数进行计算,不包含NULL值。

2、mysql 中 order by 同 hive 中 sort by、 cluster by 的区别

  • order by ,hive 中同mysql的含义,进行全局排序,hive 的存储是基于hdfs的,若将所有的map的结果汇集到一个reduce,则运行很慢,最坏的情况内存不够,程序运行失败;
  • sort by ,是hive 中hql语句,含义是局部排序,在进入reduce之前进行排序;
  • cluster by,是hive 中hql语句,含义是分区,并且排序,该功能相当于distribute by 加上 sort by, 其目的是在大数据背景下,按照某个分区进行局部排序,之后再通过归并排序,进而间接实现全局有序。

 

 

 

你可能感兴趣的:(hadoop,mysql)