用三分钟学会一个MySQL知识-第三十五期一:大量SQL语句文本如何快速导入到MySQL中?
Hello观众朋友们大家好,欢迎收看GreatSQL社区的第三十五期《用三分钟学会一个MySQL知识》。大量SQL语句文本如何快速导入到MySQL中?
·1、可在SQL文本前添加set session sql_log_bin=0(需要在从库也导入一次)。
·2、导入期间临时修改参数sync_binlog=10000,innodb_flush_log_at_trx_commit=0,innodb_autoinc_lock_mode=2。
·3、导入前根据业务情况看能否删除除了自增列主键外的其他索引。
·4、将SQL文件切割成多份,再并发多线程导入。
·5、若该SQL文件是每个INSERT一行,需要先行将多行合并成一行,即启用extended-insert模式。
·6、以上建议在线上环境请谨慎评估该骚操作的风险性。
·7、以上建议仅考虑尽快导入,涉及到和具体业务需求相冲突时(例如太快导入反倒会影响在线数据库性能),以实际情况为主。
·另外1、除了关闭双1改成双0外还可以关闭binlog、redo double write等,导入完毕后再开启(可能还要重启实例)。
·2、最后告诉大家一个大杀招,可以用GreatSQL的并行load data功能,导入效率大约能提升20倍。
本期视频到此结束感谢大家观看。