-
SQL优化,使用之前调用执行计划
1,执行SQL前对SQL进行一个分析,使用explain sql(分析哪个步骤需要内存多,指定机器),profile(为什么这次的SQL执行的这么慢)
2,哪些SQL会导致数据倾斜,保证谓词下推的成功
3,多层嵌套,select * 都是可以优化的
- 选择合适的文件格式进行存储
- 避免产生很多小文件,少用insert,如果有其他程序产生的小文件,可以使用中间表
- 使用合适的分区技术,根据分区粒度测算
- 使用compute stats进行表信息搜集
- 网络IO的优化:
1,避免把整个数据发送到客户端(执行完了直接落地,在本地查看执行结果)
2,尽可能的做条件过滤
3,使用limit字句
4,输出文件时,避免使用美化输出
- 使用profile输出底层信息计划,再做相应的环境优化