MySQL 如何快速导入 dump.sql 到数据库中?
来源:互联网 发布:淘宝网店招牌设计 编辑:程序博客网 时间:2024/06/02 02:54
导入dump.sql
最常用的方法就是:
mysql -uroot database_name < dump.sql
但是如果dump.sql
文件比较大的话,导入过程将会很漫长,下面是通过调整/etc/my.cnf
的相关参数,来加快导入速度。
1. log-bin
即是binlog
,binlog
主要有两种用途,一是数据恢复,而是数据同步,在快速导入的场景下关闭binlog
将会有效提升导入速度:
#log_bin=bin
注意:在给master
导入数据的时候注意不要将该参数设置为off
,因为master
和slave
是通过binlog
同步数据,关闭binlog
会导致数据不一致。
2. innodb_flush_log_at_trx_commit
大批量导入数据,调整innodb_flush_log_at_trx_commit
将会非常有效,该参数有三个选项:
1 -- 是默认值,每次事务提交时都会把 log-buffer 的数据写入 log file,并且 flush 中去;2 -- 每次事务提交时都会把 log-buffer 的数据写入 log file 。但是 flush 操作并不会同时进行。该模式下,MySQL 会每秒执行一次 flush 操作;0 -- log-buffer 将每秒一次地写入 log file 中,并且 log file 的 flush 操作同时进行。该模式下,在事务提交的时候,不会主动触发写入磁盘的操作。
在应用中该参数到底设置多少取决于应用系统对数据安全和效率的重视程度,但是在快速导入dump.sql
到数据库这样的应用场景下,建议设置为0:
innodb_flush_log_at_trx_commit=0
3. innodb_log_buffer_size
这个参数是innodb
存储引擎的事务日志所使用的缓冲区大小,配合innodb_flush_log_at_trx_commit=0
使用,在导入数据的时候可以将该参数相应调大一点:
innodb_log_buffer_size=128M
4. innodb_log_file_size
这个参数是innodb
日志文件大小,增大该文件大小可以有效减少IO
。
innodb_log_file_size=1G
注意:如果导入目标数据库不是新装数据库,修改这个值有可能会导致数据库启动不起来。
5. innodb_write_io_threads
该参数是服务.ibd
文件的后台IO
的线程数,默认是4,在当前情况下可以适当调大一点:
innodb_write_io_threads=16
注意:不要超过服务器CPU
核心的数量。
6. innodb_doublewrite
该参数默认值是1,一般slave
会通过设置成0来提升数据库性能,在master
中非常不建议设置为0,但是在当前场景下可以暂时将该参数设置为0:
innodb_doublewrite=0
7. 总结:
为了快速导入数据,/etc/my.cnf
参数调整为:
#log_bin=bininnodb_flush_log_at_trx_commit=0innodb_log_buffer_size=128Minnodb_log_file_size=1Ginnodb_write_io_threads=16innodb_doublewrite=0
!!!注意:上述参数调整只是为了快速导入数据,导入完成后,需要将以上参数调整到之前的值,以保证数据安全。
ref:
http://dba.stackexchange.com/questions/83125/mysql-any-way-to-import-a-huge-32-gb-sql-dump-faster
http://blog.itpub.net/124805/viewspace-1050519/
http://blog.itpub.net/22664653/viewspace-1063134/
http://www.cnblogs.com/whiteyun/archive/2011/12/01/2270132.html
http://blog.csdn.net/summerhust/article/details/7589049
http://database.chinaunix.net/a2011/1123/1278/000001278369_1.shtml
- MySQL 如何快速导入 dump.sql 到数据库中?
- 如何将XX.sql文件导入到MYSQL数据库中
- 如何把.sql文件导入到MySql数据库中
- MySql的数据如何导入到Sql Server数据库中?
- 如何在cmd状态下 导入 mysql 的 sql文件到数据库中
- 如何将.SQL文件的数据导入到Mysql的数据库中
- 如何将数据库MySQL导入到SQL server
- Centos中导入sql文件到mysql数据库
- 如何将EXCEL数据导入到SQL数据库中来
- 如何将ACCESS数据库导入到SQL SERVER中
- 如何把EXCEL数据导入到SQL SERVER数据库中
- 如何将SQL Server数据导入到Oracle数据库中
- 如何将SQL Server数据导入到Oracle数据库中
- 如何把excel数据导入到mysql数据库中
- 如何把纯真ip数据库导入到MySQL数据表中
- 如何把MYD,MYI文件导入到MYSQL数据库中?
- 如何将*.sql文件快速导入mysql数据库里 及备份为*.sql
- MySQL数据库导入到SQL Server
- E: Unable to locate package...
- 芒果iOS开发之UITableView详解
- jQuery动态添加删除select项(实现代码)
- String int类型相互转换
- Delphi 窗体无边框全屏不遮挡任务栏-最完美的解决方法
- MySQL 如何快速导入 dump.sql 到数据库中?
- 添加Root权限用户(超级用户)方法
- Wireshark实战分析之DHCP协议(二)
- 我也要谈谈大型网站架构之系列(3)——死了都要说的缓存
- Struts2:国际化
- HttpClient 中文编码问题
- Git Patch生成和应用指南
- BSP and Web Dynpro
- AndroidStudio 1.4升级到1.5后,peer not authenticated错误