内容简介:对MySQL的用户而言,备受诟病的一个问题就是导入SQL备份文件时不能并发,使得导入的效率很低。今天,我们就来改变下思路,尝试一下并发导入的方法,供大家参考。1、问题分析
对 MySQL 的用户而言,备受诟病的一个问题就是导入 SQL 备份文件时不能并发,使得导入的效率很低。
今天,我们就来改变下思路,尝试一下并发导入的方法,供大家参考。
1、问题分析
想要实现并发导入,其实没那么难,最简单的思路就是:将完整的文件切分成多份,然后并发导入即可。
在这里,我自己的做法是这样的:
1) 首先,假设只有一个库;多个库的情况也是类似,无非就是循环 2) 计算SQL文件总行数 3) 计算SQL文件总大小 4) 设定每个切分文件最大尺寸 5) 初始化表结构 6) 循环处理SQL,按照切分文件最大尺寸切分成多个小文件 7) 并发导入多个小文件
上述方法中,如果数据表是 MyISAM 表,则并发导入没有问题,但如果是 InnoDB 表,则会有表级锁 AUOT-INC 导致并发效率不高的麻烦,尽管如此,那也比单个文件串行导入来的快一些。想要避免这个麻烦,就得采用 MySQL 5.1 版本了,因为在 5.1 中,改进了 AUTO-INC 的处理方式,规避了表级锁,很大程度提高了并发效率。
2、实际测试
事先设定:最大并大导入线程是16个。
2.1 MySQL 5.0.67 版本
innodb_flush_log_at_trx_commit = 1 串行导入:01:51:34 并行导入:01:25:05 innodb_flush_log_at_trx_commit = 0 串行导入:01:49:36 并行导入:01:11:29
2.2 MySQL 5.1版本
innodb_flush_log_at_trx_commit = 1, innodb_autoinc_lock_mode = 0 串行导入:01:52:28 并行导入:01:38:13 innodb_flush_log_at_trx_commit = 1, innodb_autoinc_lock_mode = 1 串行导入:01:54:55 并行导入:01:26:24 innodb_autoinc_lock_mode = 0 并行导入:01:38:13 innodb_autoinc_lock_mode = 1 并行导入:01:05:51
更加详细的测试就不再做了。
3、小结
从上面的测试结果可以看到,MySQL 5.1在AUTO-INC锁方面的改进还是非常大的,对于想要提升并发性能,同时应用相对不是太复杂,并且不担心会碰到bug的童鞋可以多多尝试下。
由于众所周知的缘故,相关的脚本就不发布了,有需要的童鞋请加入MSN群讨论。
觉得文章有用?立即:和朋友一起 共学习 共进步!
建议继续学习:
- 一种常见的并发编程场景的处理 (阅读:22022)
- Rolling cURL: PHP并发最佳实践 (阅读:9369)
- 查看 Apache并发请求数及其TCP连接状态 (阅读:7161)
- 大型高并发高负载网站的系统架构分析 (阅读:6841)
- 大并发下的高性能编程 – 改进的(用户态)自旋锁 (阅读:6143)
- 并发编程系列之一:锁的意义 (阅读:4841)
- 学习:一个并发的Cache (阅读:4341)
- 并发框架Disruptor译文 (阅读:4200)
- C++多进程并发框架 (阅读:4041)
- PHP 持久连接于并发 (阅读:3822)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- ASP.NET Aries 高级开发教程:Excel导入之多表高级导入配置(中)
- 将Excel文件导入数据库(POI+Excel+MySQL+jsp页面导入)第一次优化
- [MySQL]备份和导入
- Android Studio 导入源码
- Python导入订单是否重要
- hive 导入 mysql文本
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
XML Hacks
Michael Fitzgerald / O'Reilly Media, Inc. / 2004-07-27 / USD 24.95
Developers and system administrators alike are uncovering the true power of XML, the Extensible Markup Language that enables data to be sent over the Internet from one computer platform to another or ......一起来看看 《XML Hacks》 这本书的介绍吧!