SQL_优化
1 SQL优化
(1) 数据读取
①分区裁剪:使用时只读取需要的分区.
②列裁剪:读取操作(select、where、join、group by、sort by等),不读取不需要的列,减少IO消耗.
(2) 数据筛选
①分区先过滤,区分度大的字段先过滤.
②不在筛选字段上使用函数和表达式.
(3) 分组聚合
①使用窗口函数时,排序键区分度大的放在前面.
②数据量大时,用group by替代distinct.
(4) join
①减少不必要的关联字段.
②关联字段有用函数等处理时,可先处理好字段再关联.
③关联键区分度大的先执行.
④多表关联时,能减少数据量的表先关联.
(5) 索引
合理设置索引,再使用时避免索引失效.
(6) 整体
①将复杂查询分解为多个简单查询.
②将重复计算的结果存储在变量或临时表中.
2 结构优化
(1) 字段
①减少单表字段数.
②整数尽量用短的类型.
③可用枚举或者整数代替字符串类型.
3 资源优化
①调整内存参数:如缓冲池大小、缓存大小等.
②调整连接池:优化数据库连接池的大小和配置.
4 针对性优化
优化MySQL:从单表到高阶策略的全方位优化指南-CSDN博客https://blog.csdn.net/weixin_43875878/article/details/125927373Hive_优化/问题-CSDN博客文章浏览阅读2次。①除了需要导入数据表使用textfile外,表的存储格式使用orc 和 parquet.
https://blog.csdn.net/weixin_43875878/article/details/145882724