mysql如何导入几个G的数据库

mysql如何导入几个G的数据库,第1张

首先说明本人只测试了40G的东西。大于40G的还没有测试。

上传之前我们需要将my.ini修改一个参数max_allowed_packet.将参数设置为max_allowed_packet=100000M。1M=1024*1024。以此类推。1G=...。

不经过此设置可能会发生以下问题:MySQL server has gone away .出现这个问题的原因是因为client端和mysql server端断开了。一般是操作sql文件时间过长导致的。

设置好之后重启

这里我经过测试:max_allowed_packet最大只能设置为1G=10737418248/1024/1024/1024.

查看max_allowed_packet命令为如下:

下面开始使用命令行来上传sql文件。

一、进入mysql的bin目录下

二、执行如下语句

mysql -uroot -p 数据库 <sql所在目录

提示输入密码即可导入大数据量的sql文件。

三、如何检验文件是否在上传或者文件是否已经传完毕。打开您的mysql管理工具(比如navicat)。按F5看对应的库记录和大小或者上次更新时间是否在变化就好了。

四:上传过程可能比较漫长。上传完毕

方法一,从已有大数据表中检索大量数据插入到目标表里

方法二,编写存储过程,利用循环向数据表中插入大量的固定或有规律变化或随机变化的虚拟数据

方法三,通过应用程序端编程向目标表插入大量的数据,手法与方法二类似。

如果您指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行UPDATE。例如,如果列a被定义为UNIQUE,并且包含值1,则以下两个语句具有相同的效果:

mysql>INSERT

INTO table (a,b,c) VALUES (1,2,3)

->ON

DUPLICATE KEY UPDATE cc=c+1

mysql>UPDATE

table SET cc=c+1 WHERE a=1

如果行作为新记录被插入,则受影响行的值为1;如果原有的记录被更新,则受影响行的值为2。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/33995.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-20
下一篇2023-02-20

发表评论

登录后才能评论

评论列表(0条)

    保存