mysql54源量表_mysql增量表与全量表逻辑实例讲解

sourcetabel: offer t1

(存在20161201~20180531的用户相关信息,分区为日分区p_date_no, 全量表, 每个分区会保存前一个分区中的所有数据内容)

targettabel: xyzj_user t2

全量表更新逻辑:

第一步:从t1源表中,传入(p_date_no等于昨天), 获取表里面所有用户的id与其新套餐生效时间.

第二步: 将第一步得到的所有的用户id, 套餐生效时间往前推2个月(旧套餐)作为p_date_no, 作为子查询条件去查t1源表,查出两个月前这个用户办理旧套餐情况.

相当于全表查询, 去每个分区里面找这个用户办理的旧套餐的信息

清空源表之后插入

增量表更新逻辑:

第一步:从t1源表中,传入(p_date_no等于昨天), 获取表里面所有用户的id与其新套餐生效时间。

第二步: 将第一步的结果对比源表, 将重复的去除了,留下昨天更新的用户id,也就是昨天刚办理新套餐的那批用户。

第三步: 将(第二步得到的新办理套餐用户id), 加上p_date_no(昨天) 减去2个月, 去查t1源表,去看一下这些办理新套餐的用户2个月前办理的旧套餐信息。

全量表更新逻辑缺点:

1, 一个表可以存在的分区的长度有限,太久远的日期无法作为分区去查询

第一步得到的用户有可能是很久之前办理的新套餐,用这个日期作为分区去查可能查不出来

2, 相当于全表更新查询效率很慢

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值