MySQL优化主从同步实操

摘要 大数据解决方案,大数据数据库,大数据应用阿里云MySQL TokuDB存储大数据,便捷导入ODPS\Greenplum进行大数据分析。

1.     MySQL 大数据存储-5倍以上压缩

  阿里云RDS for MySQL支持TokuDB引擎,实现对数据5-10倍的高压缩存储,且通过中间节点的缓存以支持高并发写入场景。

   TokuDB是RDS for MySQL一个可选的存储引擎,采用面向磁盘优化的索引结构Fractal Tree,中间节点可以缓存数据处理请求(insert/update/delete/on-line add index/on-line add column),对于高并发写入场景性能提升3-9倍。同时采用4M(可配置)字节的节点大小,通过多种压缩算法如zlib/quicklz/lzma/zstd/snappy,实现5-10倍的数据压缩。不仅如此,TokuDB还支持MVCC多版本,支持UR,RC,RR,Serializable四种隔离级别。

 

   相比社区版本,RDS for MySQL源码团队还针对用户常见的使用场景做了定制性的优化:

l   热备份

  TokuDB社区版不提供热备份功能,RDS for MySQL实现了基于TokuDB内部checkpoint机制的热备方案。通过拷贝binlog,redo log和数据文件数据来进行热备份。并通过获取TokuDB的checkpoint锁,来防止热备过程中发生sharp checkpoint。

 

l   提高客户端query响应

  RDS提供的源码版本限制了TokuDB每秒执行一次的sharp checkpoint,避免占用磁盘带宽太多,导致客户端query无法相应场景。

 

l   设置Buffer pool ratio

  RDS提供参数tokudb_buffer_pool_ratio,可自由设定TokuDB引擎buffer pool占用内存的百分比,取值范围是[0,100]。为了满足InnoDB/TokuDB初始化的要求,TokuDB最小buffer pool大小是 64M,InnoDB最小的buffer pool大小是64M(5.6版本),128M(5.7版本)。

 

RDS for MySQL 仅需3步即可切换至TokuDB引擎

1、  设置 loose_tokudb_buffer_pool_ratio 的比例,即 tokudb 占用 tokudb 和 innodb 共用缓存的比例。  

select sum(data_length) into @all_size from information_schema.tables where engine='innodb';

select sum(data_length) into @change_size from information_schema.tables where engine='innodb' and concat(table_schema, '.', table_name) in ('XX.XXXX', 'XX.XXXX', 'XX.XXXX');   

select round(@change_size/@all_size*100);

2、  重启实例

3、  修改存储引擎

ALTER TABLE XX.XXXX ENGINE=TokuDB

   其中,XXX.XXXX 为需要转化成 TokuDB 存储引擎的数据库和表名。

2.     MySQL 大数据计算

    阿里云提供了大数据计算服务(MaxCompute,原名 ODPS)又称大数据计算服务,可服务于批量结构化数据的存储和计算,提供海量数据仓库的解决方案以及针对大数据的分析建模服务。通过数据集成服务,经过界面化的简单设置,即可将 RDS 数据导入 MaxCompute,实现大规模的数据计算。

d0306a4fce3b402baac5dedd02044f79de525606

 

本文中提到的产品

云数据库 云服务器 大数据计算服务
相关文章