美文网首页程序员
利用 pt-archiver 归档 关联表

利用 pt-archiver 归档 关联表

作者: 凌云_00 | 来源:发表于2020-08-06 18:56 被阅读0次

    开篇

      又是好久没有写博客了,今天就写一个在数据归档中的小经验吧!

    背景

      最近一周接到一个小任务,就是对一些业务表中的冷数据做归档.
      在对有归档需求的业务表分析和梳理后,发现这些业务表中有50%冷数据,归档后表大小都能从千万级别的大表缩减为百万数据的表.归档工作的收益还是非常明显的.我们搞起来!

    坎坷

      在一波咨询和沟通后,发现 DBA 未用过 pt-archiver 对一些关联表做归档......
      在一波搜索后在官网找到了方案,使用 NOT EXISTS(~), 但这是什么?要怎么做?都没有说


    官网示例
      但是官网只是简单的给了给示例并没有详细介绍,如何操作,继续搜索,发现了下面的东西 其他示例1
    其他示例2
      睿智的你一定发现了,这些文章基本是翻译和搬运了官网的文档,并没有什么借鉴和实用意义.
    到了这时,我们就需要开动大脑来想想办法了!!!

    解决方案

      解决方案那就是 --> 理解子表中孤立行的含义

     1. 先归档主表数据(删除主表原有的冷数据) 
     2. 主表归档完后,子表中使用关联字段在主表查询为null的数据,就是官网所定义的{子表中的孤立行}.
     3. 利用主表的数据已被清空,使用 NOT EXISTS  语句和关联字段 ,对子表做归档操作
          NOT EXISTS(SELECT * FROM 主表 c WHERE 子表.key=c.key)
    

      是不是感觉很简单,也没什么内容,的确! 但是这么简单的东西没有人写明白,写清楚,就给了我写文章的机会.

    End

      希望这篇归档短文能给您提供一些思路和帮助,共勉!

    相关文章

      网友评论

        本文标题:利用 pt-archiver 归档 关联表

        本文链接:https://www.haomeiwen.com/subject/mmoorktx.html