我有一个巨大的32 GB SQL转储,需要导入MySQL。我以前不必导入这么大的SQL转储。我照常做:
mysql -uroot dbname < dbname.sql
花费的时间太长了。一张桌子大约有3亿行,大约3个小时就达到了150万行。因此,似乎整个过程将花费600个小时(即24天),并且是不切实际的。所以我的问题是,有没有更快的方法可以做到这一点?
进一步的信息/发现
- 这些表都是InnoDB,并且没有定义外键。但是,有很多索引。
- 我没有访问原始服务器和数据库的权限,因此无法进行新备份或进行“热”复制等。
- 此处
innodb_flush_log_at_trx_commit = 2
建议的设置似乎并没有(明显可见/指数)改善。 - 导入期间(从MySQL Workbench)的服务器统计信息:https : //imgflip.com/gif/ed0c8。
- MySQL版本是5.6.20社区。
- innodb_buffer_pool_size = 16M和innodb_log_buffer_size = 8M。我需要增加这些吗?