mysql整点抖动_MySQL 5.5 大量数据插入出现的抖动问题 及 解决方法
背景
日志型应用的一个典型操作,是周期性地有大量的insert操作。这类操作需要对扩展表空间。
分析
在InnoDB里,扩展表空间的操作是在语句执行过程中,由执行线程直接调用的。
尤其是对于一些表每行比较大,则会出现每插入几条记录就需要扩展表空间。
虽然有insert buffer和write ahead logging策略保证在执行线程中不直接操作表数据文件,但扩展表空间的操作会导致更新的tps出现瞬间低点。现象如下图。实际上整体TPS也受此影响。
改进方案及可行性
可以在这类大操作之前预分配表空间来优化这个问题。我们的业务上线之前都有容量预估,每天也有监控。因此接下来一段时间表空间增长到多少,是能够预估得到。
在实际更新开始之前,在低峰期甚至是提供服务之前就将表空间预分配好,能够避免这种抖动和提高TPS。
工具验证
InnoDB的表空间结构上,空间头部有4个byte的数字N表示这个表空间的大小(page数目),文件的实际大小是N*Page_SIZE.
实现了一个工具extend_space,修改4个byte并将文件append到指定的大小。测试发现insert性能提升10%。由这个原因引起的抖动消除。
后续
目前还只是用工具实现。工具使用起来比较麻烦,主要是更新过程中的锁表操作就需要外部脚本,而且以后应用的新版本中page_size可变,因此比较优美的方案是将这个功能加入到MySQL支持的命令中。
补充更新
新增MySQL命令支持预扩展
效果如图
mysql整点抖动_MySQL 5.5 大量数据插入出现的抖动问题 及 解决方法相关推荐
- mysql workbench 监控_mysql 使用workbench工具,表状态为read only的解决方法
解决方法: MySQL中数据库表中如果没有设置primary key,在workbench中,无法直接编辑数据,必须设置PK和NN. 拓展: - PK: primary key (column is ...
- mysql删除数据后id自增不连续的解决方法
mysql删除数据后id自增不连续的解决方法 参考文章: (1)mysql删除数据后id自增不连续的解决方法 (2)https://www.cnblogs.com/weifeng-888/p/1163 ...
- SqlYong连接MySql数据时,出现错误代码2003的解决方法
问题描述: 在我刚刚安装完SqlYong后,准备用SqlYong连接MySql数据时,出现错误代码2003. 解决方法: MySql没有开始,只需要启动MySql即可. (我的电脑右键-管理-服务 ...
- Mysql5.7数据导出提示--secure-file-priv选项问题的解决方法
Mysql5.7数据导出提示--secure-file-priv选项问题的解决方法 参考文章: (1)Mysql5.7数据导出提示--secure-file-priv选项问题的解决方法 (2)http ...
- 注册表编辑器厘米爱你找不到mysql,win7系统中安装mysql后找不到服务或出现找不到指定文件的解决方法...
最近有用户到本站反馈说碰到这样一个情况,就是在电脑中安装mysql后,出现找不到服务或出现找不到指定文件的情况,碰到这样的问题该怎么办呢,接下来给大家讲解一下 1.如果你是5.0的版本,先用cmd进入 ...
- mysql插入报主键冲突,解决方法主键索引重新排序
mysql插入报主键冲突,解决方法主键索引重新排序 参考文章: (1)mysql插入报主键冲突,解决方法主键索引重新排序 (2)https://www.cnblogs.com/nizuimeiabc1 ...
- MySQL学习笔记(五)并发时经典常见的死锁原因及解决方法
MySQL学习笔记(五)并发时经典常见的死锁原因及解决方法 参考文章: (1)MySQL学习笔记(五)并发时经典常见的死锁原因及解决方法 (2)https://www.cnblogs.com/tiny ...
- 连接mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决方法
连接mysql报错:Access denied for user 'root'@'localhost'(using password: YES)的解决方法 参考文章: (1)连接mysql报错:Acc ...
- oracle数据库中批量把一张表里面的数据插入到不同的表中的方法
oracle数据库中批量把一张表里面的数据插入到不同的表中的方法(insert first into | insert all into) 准备环境 1.oracle数据库自带的scott下的用户表 ...
最新文章
- codeforces 1016C - Vasya And The Mushrooms 【构造 + 思维】
- nginx负载均衡集群
- JS中全局对象的属性和方法
- 分布式文件系统(HDFS)与 linux系统文件系统 对比
- 内核链表list.h文件剖析
- 在Ubuntu 16.04下安装nodejs
- C++算法学习(力扣:134. 加油站)
- snipaste怎么滚动截长图_还在用老方法截长图?分享iPhone滚动截屏方法,无需拼接1秒出图...
- UI设计师应聘面试攻略看这篇就够了
- 面试官问我new Vue阶段做了什么?
- mysql 1593_Linux中MySQL主从复制中出现1593错误码的低级错误
- Markdown Day01
- java 构造方法能被继承吗_Java中构造函数可以被继承么
- RSA非对称加密传输---前端加密解密(VUE项目)
- Linux基础命令----tail 查看文件尾部内容
- 如何查看自己加入过的微信群
- WebRTC系列 -- iOS ADM音频数据流处理流程及源码阅读记录
- IE上在线浏览PDF
- Nestjs框架快速入门之项目搭建与小试牛刀
- 3、IQ采样【入门软件无线电(SDR)】PySDR:使用 Python 的 SDR 和 DSP 指南
热门文章
- rar 文件头crc版本_php实现rar文件的读取和解压
- 用javascript实现以下功能!_模电小实验:用三极管实现触摸开关功能
- wps重复上一步快捷键_WPS表格怎么快速输入重复内容?快速输入重复内容的详细步骤...
- python建立字典读取键和值_在Python字典中动态创建键和值
- 用php程序能消除水印吗,php——水印
- 四、从Excel开始,学习Excel的快捷键
- 北极约200万个甲烷点被发现,人类的反思该提上日程了,因为只有一个地球
- 中绘制折线_啥是折线图?啥时候用?怎么用呢?这里全都有,满足你的味蕾
- 浅谈NLP中的对抗训练方式
- 40万总奖金!顶级云服务免费用!2021全球高性能云计算创新大赛报名中!