加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL每秒57万的写入,带你飞~

发布时间:2018-12-05 17:29:07 所属栏目:编程 来源:吴炳锡
导读:一、需求 一个伴侣接到一个需求,从大数据平台收到一个数据写入在20亿+,必要快速地加载到MySQL中,供第二天营业展示行使。 二、实现再说明 对付单表20亿, 在MySQL运维,嗣魅真的这块今朝涉及得较量少,也根基没什么履历,但对付InnoDB单表Insert 假如内存

MySQL每秒57万的写入,带你飞~

一、需求

一个伴侣接到一个需求,从大数据平台收到一个数据写入在20亿+,必要快速地加载到MySQL中,供第二天营业展示行使。

二、实现再说明

对付单表20亿, 在MySQL运维,嗣魅真的这块今朝涉及得较量少,也根基没什么履历,但对付InnoDB单表Insert 假如内存大于数据环境下,可以维持在10万-15万行写入。 但许多时刻我们接管的项目照旧数据高出内存的。 这里行使XeLabs TokuDB做一个测试。

三、XeLabs TokuDB先容

项目地点: https://github.com/XeLabs/tokudb

相对官方TokuDB的优化:

  •  内置了jemalloc 内存分派;
  •  引入更多的内置的TokuDB机能指标;
  •  支持Xtrabackup备份;
  •  引入ZSTD压缩算法;
  •  支持TokuDB的binlog_group_commit特征;

四、测试表

TokuDB焦点设置:

MySQL每秒57万的写入,带你飞~

表布局:

MySQL每秒57万的写入,带你飞~

操作load data写入数据:

MySQL每秒57万的写入,带你飞~

计较一下每秒写入速率:

MySQL每秒57万的写入,,带你飞~

文件巨细:

MySQL每秒57万的写入,带你飞~

现实文件8.5G,写入TokuDB巨细3.5G,只是靠近于一半多点的压缩量。 对付20亿数据写入,现实测试在58分钟多点就可以完成。可以满意现实需求,其它对付磁盘IO较量好的呆板(SSD类盘,云上的云盘),假如内存和数据差不多环境,这量级数据量测试在Innodb里必要添加自增列,可以在3个小多一点完成。 从最佳拭魅战上来看,Innodb和TokuDB都写入同样的数据,InnoDB必要花或许是TokuDB3-4倍时刻。文件巨细区别,同样20亿数据:

MySQL每秒57万的写入,带你飞~

文件巨细在5倍巨细的区别。

测试结论:

操作TokuDB在某云情形中8核8G内存,500G高速云盘情形,多次测试可以轻松实现57万每秒的写入量。

其它测试几种场景也供各人参考: 假如在TokuDB中行使带自增的主键,主键无值让MySQL内部发生写入速率,降落较量明明,同样写入2亿数据,带有自建主键:

MySQL每秒57万的写入,带你飞~

同样的数据写入在主键自增无值发生时,不能行使TokuDB的 Bulk loader data特征,相等于转换为了单条的Insert实现,以是结果上慢太多。

关于TokuDB Bulk Loader前概要求,这个表是空表,对付自增列,如自增列有值的环境下,也可以行使。 提议现实行使中,假如自增列有值的环境下,可以思量去除自增属性,改成独一索引,这样镌汰自增的一些处理赏罚逻辑,让TokuDB能跑地更快一点。 其它在Bulk Loader处理赏罚中为了追求更快速的写入,压缩方面并不是很好。

关于TokuDB Bulk Loader :

https://github.com/percona/PerconaFT/wiki/TokuFT-Bulk-Loader

五、测试情形声名

测试行使CentOS7情形,编译的XeLabs TokuDB版本百度云地点:

https://pan.baidu.com/s/1cxoarGW8psQfQpJnpXq09Q

【编辑保举】

  1. 亚马逊将在2019年底之前弃用全部Oracle数据库
  2. 数据库运维的那些困难,我们用呆板进修办理了
  3. 12月数据库榜单,整体排名不变如昨,Oracle 分数接连降落
  4. 黑客进攻数据库的六大本领
  5. 2018年12月环球数据库排行榜:Oracle惨不忍睹!
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读