向mysql中导入维基百科的数据(数据源中sql的部分,总数据20g,单条sql 100MB--5GB),导入速度太慢,1个晚上才导入不到1GB,如何提高导入速度。主键唯一性检验和自动提交都已经关了。
向mysql中导入维基百科的数据(数据源中sql的部分,总数据20g,单条sql 100MB--5GB),导入速度太慢,1个晚上才导入不到1GB,如何提高导入速度。主键唯一性检验和自动提交都已经关了。
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
4 回答1.6k 阅读
2 回答1.3k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
2 回答2.2k 阅读
2 回答1.1k 阅读✓ 已解决
之前回答过一个类似的问题,思路如下:
对于insert方式写入优化点:
1、insert批量执行,禁止单条insert value(注意单条sql长度限制,可临时调整max_allowed_packet)
2、开启事务处理,批量提交。原理类似上1(条件允许可适当增大innodb_log_buffer_size,增加单事务提交日志量,该参数read only)
3、主键顺序插入,效率更高
4、业务允许,暂时disable keys
其他录入方式,比如load data是比较快的,可以试试
另外如果业务允许,暂时禁用binlog,并将redolog文件采用软连接的方式放入内存减少磁盘io(同样也可以把你的表数据文件放入内存目录/dev/shm,要求内存足够),要记得导入完成重新放入磁盘,以上两种方式导入均可采用此方式减少磁盘io