码迷,mamicode.com
首页 > 数据库 > 详细

MySQL Innodb 插入速率优化

时间:2015-07-23 18:00:51      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

批量【更新/插入】百万以上数据时,每次2w条,超过10w条以后效率线性下降。参考本文设置效果不明显,原因可能是因为索引的问题。 继续查。不过此文质量不错。

==============================


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| 
+------------+ 
从上面结果来看,数据量增加会对插入性能有一定影响。不过,整体速度还是非常面议。一天不到时间,就可以完成4亿数据正常处理。预计数据库瓶颈已经被巧妙解决,结果变成程序“猿”苦逼地向我埋怨,大哥不用这么狠啊。


MySQL Innodb 插入速率优化

标签:

原文地址:http://my.oschina.net/vvcumt/blog/482906

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!