一步一个脚印,一天一道面试题
- 
数据分区和分桶:合适的分区和分桶能减少数据量的输入 
- 
合适的数据格式:Parquet,ORC 是可以减少 I/O ,网络传输速率等的 
- 
列裁剪:一般不要使用 SELECT *,只获取真正需要的列 
- 
文件合并 :使用 INSERT OVERWRITE可以减少小文件数量,提高效率
- 
数据过滤 :使用 WHERE过滤,简单却有效
- 
并行度设置:合理的并行度设置可以更好的利用集群性能,否则可能会"有力使不出"或"杀鸡用牛刀"的情况 
- 
数据本地化和 JOIN 化:尽量在本地节点做更多的操作,减少网络传输等开销,比如使用 mapjoin; 
- 
定期收集统计信息 : ANALYZE TABLE收集表的信息,可以让优化器更可能做出更好的查询计划;