本文作者:吴炳锡

来源:https://yq.aliyun.com/articles/278034

一、需求

一个朋友接到一个需求,从大数据平台收到一个数据写入在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核心配置:

表结构:

利用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版本百度云地址:

mysql 计算天数去除第二和第四个周日_123走起,MySQL每秒57万的写入相关推荐

  1. MySQL每秒57万的写入,带你装逼,带你飞 !!

    来源 | http://yq.aliyun.com/articles/278034 一.需求 一个朋友接到一个需求,从大数据平台收到一个数据写入在20亿+,需要快速地加载到MySQL中,供第二天业务展 ...

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

    一.需求 一个朋友接到一个需求,从大数据平台收到一个数据写入在20亿+,需要快速地加载到MySQL中,供第二天业务展示使用. 二.实现再分析 对于单表20亿, 在MySQL运维,说真的这块目前涉及得比 ...

  3. MySQL 每秒57万的写入,带你飞呀!

    一.需求 一个朋友接到一个需求,从大数据平台收到一个数据写入在20亿+,需要快速地加载到MySQL中,供第二天业务展示使用. 二.实现再分析 对于单表20亿, 在MySQL运维,说真的这块目前涉及得比 ...

  4. MySQL每秒57万的写入,快还是慢?

    点击▲关注 "数据和云"   给公众号标星置顶 更多精彩 第一时间直达 本文作者:吴炳锡 来源:https://yq.aliyun.com/articles/278034 一.需求 ...

  5. mysql 计算近30天总金额_电商网站销售数据分析(MYSQL)

    1.背景及目的 数据来源于某CD电商网站的用户订单记录,共23570名用户.69659条数据. 通过分析数据,了解该网站的用户行为.忠诚度.生命周期价值等内容,为营销策略及方案提供一定的依据. 2.数 ...

  6. MySQL最高每秒57万写入,带你装X,带你飞!

    前两天,我跟一个面试官聊天,发现一个普遍现象,不少候选人,对数据库的认知,还处在比较基础的阶段,以为会写"增删改查".做表关联就足够了,那些工作中经常出现的问题,却支支吾吾答不上来 ...

  7. MySQl 计算本年的天数

    备注:测试数据库版本为MySQL 8.0 一.需求 问题: 计算当前年的天数. 二.解决方案 当前年的天数等于第二年的第一天与当前年的第一天(以日为单位)之差. 大致步骤如下: 1.找到当前年的第一天 ...

  8. mysql第四章_MySQL必知必会--第二章~第四章--MySQL简介

    1.DBMS可分为两类:一类为基于共享文件系统的DBMS,另一类为基于客户机-服务器的DBMS.服务器部分是 负责所有数据访问和处理的一个软件.这个软件运行在称为数据库服务 器的计算机上. 2.MyS ...

  9. mysql 日期计算_mysql两个日期计算天数怎么算?

    展开全部 mysql两个日期计算天数32313133353236313431303231363533e58685e5aeb931333365633864的计算有如下方式: 1.利用TO_DAYS函数 ...

最新文章

  1. Java基本数据之间的类型转换
  2. 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(2)
  3. 考研国家线罕见大幅上涨,12个学科涨幅10分以上,超300万人将落榜
  4. feign 回退原因_0503-Hystrix保护应用-feign的hystrix支持
  5. beego1---beego,bee环境配置
  6. postgis启动_postgresql的安装和启动方法
  7. 180接线_工程人必备:180页建筑机电安装标准做法图集,限领三天手慢无
  8. 蓝桥杯 ADV-69 算法提高 质因数
  9. [JSOI2009]瓶子和燃料【数论】
  10. linux mysql tomcat_Linux下安装Tomcat,Linux下安装Mysql
  11. 数据--第42课 - 图的遍历
  12. 凸优化第二章凸集 2.5分离与支撑超平面
  13. IDC机房建设的关键技术有哪些?
  14. 淘宝美工设计师细说何为天猫透明背景
  15. 文章同一位置引用多篇参考文献标注方法
  16. nali命令--输出IP地址显示地理信息
  17. ESP8266 NodeMCU驱动OLED屏(SSD1306,4PIN,IIC)
  18. 学习yigo遇到的问题
  19. maven创建web项目
  20. spring tx:advice(转)

热门文章

  1. java 多项式拟合最多的项数_MATLAB绘制带置信区间的拟合曲线
  2. 二叉链表和职工管理系统结合_C语言课程设计_职工信息管理系统_单链表实现程序源代码...
  3. 几何分布的期望和方差公式推导_数学期望、方差、协方差
  4. 局域网传输文件_WinXP系统电脑局域网传输文件的操作方法
  5. 计算机杀毒记录表格,11科室计算机杀毒登记表
  6. IDEA自定义快捷键
  7. MySql数据的启动和停止以及SQLyog图形化工具的下载
  8. 生存分析——快手的基于深度学习框架的集成⽣存分析软件KwaiSurvival(一)
  9. [python]一个遍历多层文件夹,然后替换文件内容和目录名称的案例
  10. 初步学习Django-第八篇:ORM常用操作