大数据优化

主维表和相关维表关联时在不影响结果的情况下,尽量用left join,避免使用join。因为要保证相关维表丢数据影响主维表数据

两表join时,先where条件过滤,再join,避免join后数据量过大。

使用union all来合并数据(不影响结果的情况下),而不是union,因为union会去重,增加负担。

用查询的方式修改数据,不用update语句

性能如何提升?

  • join
  • 可以减少数据量
  • 存在重复计算
  • 数据重复读取

所有在nd表中用1d表减少重复计算

用炸裂函数减少io次数

  1. 获取时间范围最大的数据集
  2. 将查询的数据集在内存中进行炸裂处理
  3. 将炸裂后的结果集筛选出有用的数据
  4. 将筛选后的数据照标记进行分组统计

在7d和30d表中用1d表,30d表也算了7d表,可以加if判断,在30d表中算7d,但字段会变多

[up主专用,视频内嵌代码贴在这]