由于项目变态需求;需要在一个比较短时间段急剧增加数据库记录(两三天内,由于0增加至4亿)。在整个过程调优过程非常艰辛。

MySQL 从最开始的时候 1000条/分钟的插入速度调高至 10000条/秒。 相信大家都已经等急了相关介绍,下面我做调优时候的整个过程。提高数据库插入性能中心思想:

1、尽量使数据库一次性写入Data File

2、减少数据库的checkpoint 操作

3、程序上尽量缓冲数据,进行批量式插入与提交

4、减少系统的IO冲突

根据以上四点内容,作为一个业余DBA对MySQL服务进行了下面调整:

修改负责收录记录MySQL服务器配置,提升MySQL整体写速度;具体为下面三个数据库变量值:innodb_autoextend_increment、innodb_log_buffer_size、innodb_log_file_size;此三个变量默认值分别为 5M、8M、8M,根据服务器内存大小与具体使用情况,将此三只分别修改为:128M、16M、128M。同时,也将原来2个 Log File 变更为 8 个Log File。此次修改主要满足第一和第二点,如:增加innodb_autoextend_increment就是为了避免由于频繁自动扩展Data File而导致 MySQL 的checkpoint 操作;
将大表转变为独立表空并且进行分区,然后将不同分区下挂在多个不同硬盘阵列中。

完成了以上修改操作后;我看到下面幸福结果:
获取测试结果:
Query OK, 2500000 rows affected (4 min 4.85 sec)

Records: 2500000 Duplicates: 0 Warnings: 0

Query OK, 2500000 rows affected (4 min 58.89 sec)

Records: 2500000 Duplicates: 0 Warnings: 0

Query OK, 2500000 rows affected (5 min 25.91 sec)

Records: 2500000 Duplicates: 0 Warnings: 0

Query OK, 2500000 rows affected (5 min 22.32 sec)

Records: 2500000 Duplicates: 0 Warnings: 0

最后表的数据量:
+------------+
| count(*) |
+------------+
| 10000000|

+------------+

从上面结果来看,数据量增加会对插入性能有一定影响。

转载于:https://blog.51cto.com/linuxgeek/997965

MySQL 数据库插入速度调整相关推荐

  1. mysql java datetime_Java向mysql数据库插入datetime类型数据实例(精)

    在Mysql数据库中日期跟时间有两种: 1.date类型,date类型也就是我们常见的储存yyyy-MM-dd类型的日期,它不能储存时间,也就是只能储存日期, 2.dateitme就是可以储存日期同时 ...

  2. java mysql插入数据乱码_java向mysql数据库插入数据显示乱码的问题

    在做一个java web工程时,有时会碰到在向数据库添加数据库时,结果出现乱码"???"的问题.针对该问题的主要解决办法就是: 一.确保是否添加了字符集过滤器: 在java web ...

  3. mysql数据库怎么插入时间_给mysql数据库插入当前时间

    mysql相关的三个函数有: NOW()函数以`'YYYY-MM-DD HH:MM:SS'返回当前的日期时间,可以直接存到DATETIME字段中. CURDATE()以'YYYY-MM-DD'的格式返 ...

  4. python向MySQL数据库插入数据

    我在这里用的是python中pymysql连接MySQL数据库,如果电脑中没有安装pymysql,可以直接再命令行通过 pip install pymysql 安装 一.通过python脚本向mysq ...

  5. mybatis向mysql数据库插入数据时,中文乱码显示为?解决方法

    mybatis向mysql数据库插入数据时,中文乱码显示为?解决方法 1.先查看库.表.表字符字段的编码格式.MySQL默认的库和表的字符编码都是latin1,而我们一般需要使用 utf8 //先查看 ...

  6. mysql 问号_解决Mysql数据库插入数据出现问号(?)的解决办法

    首先,我用的mysql数据库是5.7.12版本. 出现的问题: 1.插入数据显示错误,插入不成功,出现:Incorrect string value: '\xCD\xF5\xD5\xBC\xBE\xA ...

  7. 你向 Mysql 数据库插入 100w 条数据用了多久?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 目录 1.多线程插入(单表) 2.多线程插入(多表) 3.预处理S ...

  8. 关于mysql数据库插入数据,不能插入中文和出现中文乱码问题

    首先,推荐一篇博客:http://www.cnblogs.com/sunzn/archive/2013/03/14/2960248.html 当时,我安装完mysql数据库后,新建一个数据库后插入数据 ...

  9. Java向MySQL数据库插入时间类型Date数据时需要注意的问题

    MySQL默认的数据类型格式是:yyyy-MM-dd,如:2015-12-30 如下图: 因此我们在往MySQL数据库中插入数据时,需要先进行格式化.在java中,我们通常这样格式化日期: [java ...

最新文章

  1. Linux中grep命令的12个实践例子
  2. sublime搭建python开发环境_使用sublime搭建python开发环境
  3. aqs java 简书,Java并发之AQS原理
  4. java面试线程必备知识点,怼死面试官,从我做起
  5. iOS--数据存储NSUserDefaults
  6. Perl IDE之Perl Express和Eclipse+EPIC+PadWalker
  7. TabTopUnderLineLayout【自定义顶部选项卡(带下划线)】
  8. 大龄打工者的出路在哪里
  9. Google 将于明年彻底关闭 Chrome Apps,以后就是 PWA 的天下了
  10. LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal
  11. DPDK QOS1 -- Linux HQOS的框架
  12. 《剑指offer》第五十八题(左旋转字符串)
  13. 红帽RHCA考试内容解析
  14. 3.1词典搜索的数据结构与通配符查询
  15. java字符串in.next_java中 nextString()怎么用
  16. (很容易懂,你把代码复制粘贴即可解决问题)高等代数/线性代数-基于python实现矩阵法求解齐次方程组
  17. Spring Security 集成 OIDC 项目编码 | 认证(三)
  18. 亲戚B (普通并查集)
  19. RTK固定解什么意思
  20. OpenGL之glut、glfw、glew、glad等库之间的关系

热门文章

  1. 软件设计原则及设计模式
  2. Linux认证复习题100道含答案
  3. dockerfile构建镜像
  4. Python入门学习:网络刷博器爬虫
  5. webpack 报错 path is not defind
  6. 全新Wijmo5中文学习指南正式上线
  7. win7下wifi密码的保存路径
  8. Java类型推断将不再支持可变性规范
  9. Centos上虚拟机搭建
  10. android工程改包名及多工程设置