目录
- 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, 其目的是在大数据背景下,按照某个分区进行局部排序,之后再通过归并排序,进而间接实现全局有序。