mysql 的sql文件太大怎么导入
2个回答
2020-12-21 · MySQL开源数据库领先者
关注
展开全部
我有个大的 SQL 文件要回放,需要马上做,但又怕压死业务,怎么办?
塞一些数据进去:
看看我们填充数据的成果:
使用 mysqldump 导出一份数据:
现在我们假设要把这个 dump 文件,回放到一个数据库中,并且现在数据库正在承担很重的业务,我们不希望业务受到太大影响。
先来看看如果直接回放 dump 文件,会发生什么?
我们看到 MySQL 的 cpu 会彪起来,
我们换一个方式来回放 dump:
看看 CPU 压力:
可以看到 CPU 已经非常冷静,并且缓慢的处理数据。
💡小贴士:pv 工具既可以用于显示文件流的进度,也可以用于文件流的限速。在本实验中,我们用 PV 来限制 SQL 文件发到 MySQL client 的速度,从而限制 SQL 的回放速度,达到不影响其他业务的效果。
展开全部
在实际工作中,有时需要导入大容量sql文件到MySQL,通常有以下三种方法:
(1)通过phpmyadmin,不推荐,有内存等的限制;
(2)通过Navicat Premium工具运行sql,不推荐,效率低;
(3)通过source命令导入,推荐,效率高,经测试,小编导入一个3.02G的文件耗时3分08秒;
打开MySQL安装目录下的my.ini文件,添加max_allowed_packet,设置大小为64M,如下:
在服务中重新启动MySQL服务,在命令行窗口(命令:show VARIABLES like '%max_allowed_packet%';)查看是否修改成功:
在命令行窗口中使用source命令(source sql文件路径)导入sql文件,如下(我们可以看到,执行效率比较高):
在Navicat Premium工具中查看是否导入成功:
查询导入表的数量(小编工导入了44张表,每张表的都有超过五百万条数据):
(1)通过phpmyadmin,不推荐,有内存等的限制;
(2)通过Navicat Premium工具运行sql,不推荐,效率低;
(3)通过source命令导入,推荐,效率高,经测试,小编导入一个3.02G的文件耗时3分08秒;
打开MySQL安装目录下的my.ini文件,添加max_allowed_packet,设置大小为64M,如下:
在服务中重新启动MySQL服务,在命令行窗口(命令:show VARIABLES like '%max_allowed_packet%';)查看是否修改成功:
在命令行窗口中使用source命令(source sql文件路径)导入sql文件,如下(我们可以看到,执行效率比较高):
在Navicat Premium工具中查看是否导入成功:
查询导入表的数量(小编工导入了44张表,每张表的都有超过五百万条数据):
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询