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

  • 时间:
  • 浏览:4

原文发布时间为:2017-12-5

文件大小:

实际文件8.5G,写入TokuDB大小3.5G,却说接近于一半多点的压缩量。 对于20亿数据写入,实际测试在58分钟多点就能才能完成。能才能满足实际需求,另外对于磁盘IO比较好的机器(SSD类盘,云上的云盘),可能性内存和数据差不多情况,这量级数据量测试在Innodb里需用加进去去自增列,能才能在六个小多或多或少完成。 从最佳实战上来看,Innodb和TokuDB都写入同样的数据,InnoDB需用花离米 是TokuDB3-4倍时间。文件大小区别,同样20亿数据:

文件大小在5倍大小的区别。

另外测试几种场景也供我们 儿参考: 可能性在TokuDB中使用带自增的主键,主键无值让MySQL内部人员产生写入速率单位,下降比较明显,同样写入2亿数据,中含 自建主键:

利用load data写入数据

同样的数据写入在主键自增无值产生时,才能使用TokuDB的 Bulk loader data形态,离米 转换为了单条的Insert实现,或多或少或多或少效果上慢不多。

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

关于TokuDB Bulk Loader前提要求,什儿 表是空表,对于自增列,如自增列有值的情况下,才能才能使用。 建议实际使用中,可能性自增列有值的情况下,能才能考虑去除自增属性,改成唯一索引,这麼 减少自增的或多或少处理逻辑,让TokuDB能跑地更快或多或少。 另外在Bulk Loader处理中为了追求更快速的写入,压缩方面并不一定是很好。

五、测试环境说明

对于单表20亿, 在MySQL运维,说真的这块目前涉及得比较少,也基本这麼哪些经验,但对于InnoDB单表Insert 可能性内存大于数据情况下,能才能维持在40万 -40万 行写入。 但或多或少或多或少时间我们 儿接受的项目还是数据超过内存的。 这里使用XeLabs TokuDB做4个测试。

计算一下每秒写入速率单位:

测试结论:

表形态

测试使用CentOS7环境,编译的XeLabs TokuDB版本百度云地址:https://pan.baidu.com/s/1qYRyH3I 。

三、XeLabs TokuDB介绍

本文作者:吴炳锡

二、实现再分析

一、需求

4个我们 接到4个需求,从大数据平台收到4个数据写入在20亿+,需用快速地加载到MySQL中,供第半个月业务展示使用。

本文来自云栖社区商务商务合作伙伴“老叶茶馆”,了解相关信息能才能关注“老叶茶馆”微信公众号

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

利用TokuDB在某云环境中8核8G内存,60 0G高速云盘环境,多次测试能才能轻松实现540万 每秒的写入量。

TokuDB核心配置:

相对官方TokuDB的优化: