2.1 存储优化
① 合理设置分区
与Hive类似,Presto会根据元信息读取分区数据,合理的分区能减少Presto数据读取量,提升查询性能。
② 使用列式存储
Presto对ORC文件读取做了特定优化,因此在Hive中创建Presto使用的表时,建议采用ORC格式存储。相对于Parquet,Presto对ORC支持更好。
③ 使用压缩
数据压缩可以减少节点间数据传输对IO带宽压力,对于即席查询需要快速解压,建议采用snappy压缩
④ 预先排序
有条件的话提前做好排序,对于已经排序的数据,在查询的数据过滤阶段,ORC格式支持跳过读取不必要的数据。
比如对于经常需要过滤的字段可以预先排序。
2.2 查询优化
① select时只选择必要字段,避免使用 * 号
② 过滤条件加上分区字段,减少查询数据量
③ 合理安排Group by语句中字段顺序对性能有一定提升
将Group By语句中字段按照每个字段distinct数据多少进行降序排列。示例中uid是用户id,比性别数据大很多。
[GOOD]: SELECT GROUP BY uid, gender [BAD]: SELECT GROUP BY gender, uid
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)