美文网首页
mysql-空间压缩杂记

mysql-空间压缩杂记

作者: rock_fish | 来源:发表于2022-01-16 14:38 被阅读0次

技术

alter table xxx engine

边界

操作是单表的维度

原理实例

假定:1主3从

方案1 手工方式

先压缩从,从升主,再压缩原主,前提是本机空间足够,系统处于较空闲状态

  1. 通过工具cli连接到从1 建立session_cli,关闭session_cli对应的binlog,不能让工具中的操作产生数据污染
  2. 通过工具cli 对从1 执行碎片整理 alter table xxx engine = innodb,在线操作,主从同步会稍微慢一些,但不会终止
  3. 依次对从2,从3 执行这个操作
  4. 在主从无差异的情况下(主只读来保证,会有业务影响),通过管控平台执行主从切换,通常是将从1 提升为主,元主变为从1,再对新从1执行
  5. 最终需要将原主再提为主
方案2:ghost工具:

原理:对主建立中间表,通过快照同步和差异同步的方式,将带压缩表的数据全部导入到新表中,然后表名称替换(rename),在主表中的操作,会通过binlog传递到从表中,从表也会执行以上操作

前提:磁盘空间足够,系统处于较空闲状态

大致过程:

  1. gh-ost在主库执行压缩命令 alter table xxx engine = innodb
  2. gh-ost会给待压缩表 通过create table命令创建中间表
  3. gh-ost内部会记录当前表的一个快照状态,即数据边界的,将此快照数据分批全部拷贝到中间表中(加锁的)
  4. Gh-ost同时将快照差异数据同步到中间表,持续解析每次copy之后的有变更的binlog的sql,在中间表执行
  5. 待db不忙,对原表加锁,判断两个表数据一致的情况下,rename(最强锁,会挂起dml操作)

分段处理:
10
update 1-30 ,
20 copy 新的
30 copy 新的

10 段的数据 bin log 中有此数据段的变更,从binlog中解析出来的redo log 只处理10段的数据,20和30段的不处理。

主库中的以上操作,都会通过binlog同步给从库,所有的从库也会按照主库的方式执行一遍。

相关文章

  • mysql-空间压缩杂记

    技术 alter table xxx engine 边界 操作是单表的维度 原理实例 假定:1主3从 方案1 手工...

  • MySQL-范式

    MySQL-范式 、 MySQL-范式是一种分层结构的规范,分为6层,每一次层都比上一层更加严格范式只为解决空间问...

  • 为什么长焦镜头会压缩空间?

    提起长焦镜头,我们最容易想到的一个词儿应该就是空间压缩。都说长焦会压缩空间,那么什么是空间压缩呢? 「空间压缩」又...

  • 压缩空间

    我将最后一道菜——水煮肉端上桌子后,林婉放下电话站起了身,她告诉我要出去回公司加班,目送她离开的我内心有些惆怅,看...

  • 压缩和归档工具

    压缩比:压缩前和压缩后文件大小的比例目的:时间 换 空间CPU的时间 --> 磁盘空间 压缩工具 压缩文件,不支持...

  • note_10.1_Linux压缩工具

    压缩和解压缩工具和bash脚本编程; 压缩比目的:时间 换 空间CPU的时间 --> 磁盘空间 tar, cpio...

  • 浅谈架构:kafka高吞吐量之消息压缩

    背景 保证kafka高吞吐量的另外一大利器就是消息压缩。就像上图中的压缩饼干。 压缩即空间换时间,通过空间的压缩带...

  • 压缩的空间

    我个性很强,其实我自己知道。但是带着这种个性是接触不了人的,所以我会收敛很多。面对他们的时候,我没有表情,没有肢体...

  • linux压缩和解压缩工具

    压缩和解压缩 一般压缩文本类数据,对于已经压缩过的文件,不应该再进行压缩压缩的目的: 拿cpu的时间,或磁盘的空间...

  • 大数据技术之MapReduce(四)

    Hadoop 数据压缩概述1 )压缩的好处和坏处压缩的优点:以减少磁盘 IO、减少磁盘存储空间。压缩的缺点:增加...

网友评论

      本文标题:mysql-空间压缩杂记

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