1.根据场景使用分区表或者分桶表
2.使用列式存储文件格式(orc parquet)
3.没有上线使用的时候使用本地测试模式 set mapreduce.framework.name=local
4.合理的设置maptask和reducetask的个数
5.避免写select * from
6.如果内存充足,使用with x as()
7.使用left semi join 代替 select from in
8.使用group by 聚合 替代 count(distinct(name))
9.尽量多的对原始数据进行过滤
10.小文件合并
11.查看执行技术dis
12.map端join
13.避免数据倾斜/对null进行处理