-

MySQL导入速度慢怎么办?

MySQL

有时候在我们往MySQL数据库导入大数据量的SQL文件时,如何让导入的速度更快?如果使用Navicat图形化工具导入,10G大小的SQL文件可能四五个小时不一定能执行完。那么今天雷雪松给大家讲解一下MySQL导入速度慢的讲解办法。

1、首先,一定要用MySQL终端的souce导入。
2、修改数据库my.cnf配置,修改配置,重启MySQL数据库。具体配置如下:

1
2
max_allowed_packet=1024M #这个大小根据实际情况配置。
innodb_flush_log_at_trx_commit = 2

innodb_flush_log_at_trx_commit简介
innodb_flush_log_at_trx_commit=0 : 提交事务的时候,不立即把 redo log buffer 里的数据刷入磁盘文件的,而是依靠 InnoDB 的主线程每秒执行一次刷新到磁盘。此时可能你提交事务了,结果 mysql 宕机了,然后此时内存里的数据全部丢失。
innodb_flush_log_at_trx_commit=1 : 默认值;提交事务的时候,就必须把 redo log 从内存刷入到磁盘文件里去,只要事务提交成功,那么 redo log 就必然在磁盘里了。注意,因为操作系统的“延迟写”特性,此时的刷入只是写到了操作系统的缓冲区中,因此执行同步操作才能保证一定持久化到了硬盘中。
innodb_flush_log_at_trx_commit=2 : 提交事务的时候,把 redo 日志写入磁盘文件对应的 os cache 缓存里去,而不是直接进入磁盘文件,可能 1 秒后才会把 os cache 里的数据写入到磁盘文件里去。

亲身经历,12G的SQL文件,1个小时左右导入到数据库。

来源:MySQL导入速度慢怎么办?

发表评论

电子邮件地址不会被公开。 必填项已用*标注