MySQL每秒57万的写入,带你飞~
一、需求 一个伴侣接到一个需求,从大数据平台收到一个数据写入在20亿+,必要快速地加载到MySQL中,供第二天营业展示行使。 二、实现再说明 对付单表20亿, 在MySQL运维,嗣魅真的这块今朝涉及得较量少,也根基没什么履历,但对付InnoDB单表Insert 假如内存大于数据环境下,可以维持在10万-15万行写入。 但许多时刻我们接管的项目照旧数据高出内存的。 这里行使XeLabs TokuDB做一个测试。 三、XeLabs TokuDB先容 项目地点: https://github.com/XeLabs/tokudb 相对官方TokuDB的优化:
四、测试表 TokuDB焦点设置: 表布局: 操作load data写入数据: 计较一下每秒写入速率: 文件巨细: 现实文件8.5G,写入TokuDB巨细3.5G,只是靠近于一半多点的压缩量。 对付20亿数据写入,现实测试在58分钟多点就可以完成。可以满意现实需求,其它对付磁盘IO较量好的呆板(SSD类盘,云上的云盘),假如内存和数据差不多环境,这量级数据量测试在Innodb里必要添加自增列,可以在3个小多一点完成。 从最佳拭魅战上来看,Innodb和TokuDB都写入同样的数据,InnoDB必要花或许是TokuDB3-4倍时刻。文件巨细区别,同样20亿数据: 文件巨细在5倍巨细的区别。 测试结论: 操作TokuDB在某云情形中8核8G内存,500G高速云盘情形,多次测试可以轻松实现57万每秒的写入量。 其它测试几种场景也供各人参考: 假如在TokuDB中行使带自增的主键,主键无值让MySQL内部发生写入速率,降落较量明明,同样写入2亿数据,带有自建主键: 同样的数据写入在主键自增无值发生时,不能行使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 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |