随笔----MySQL大数据导入

随笔----MySQL大数据导入

最近工作总是遇到分析一些大批量的数据,给的sql文件有1-2G,每次把数据搞进去就得花费很长时间,网上看了很多方法,说什么设置缓存大小(set global max_allowed_packet=2*1024*1024)、通信缓存区间大小(set global net_buffer_lenght=100000)等等。

不知道是不是我操作问题,2G的文件导入服务器还是得3-4小时,这简直是浪费生命,各位高人有啥不一样的见解可以告诉小弟哈。

后来查了很多,发现设置下面两个参数还是效果能看的到,:
2G的文件一个小时就导入完成了。

  1. 关闭唯一性检验:
    因为导入数据时,服务器默认是导入一次数据,服务器检测一次唯一性,当数据量很大时,自然很慢。所以导入数据时关闭该参数,导完数据后再打开该参数。(有个前提就是,当某字段约束为unique时,你导入的数据也必须是唯一的
    关闭:set unique_checks = 0;
    开启:set unique_checks = 1;

  2. 关闭事务提交模式:
    MySQL 默认一条语句就是一个事务,完成一条就提交一次(自动提交),所以你可以手动提交,也可以先关闭自动提交,导完之后再开启自动提交。
    关闭:set Autocommit = 0;
    开启:set autocommit = 1;

所以实际个人操作:

1.win+R 打开CMD 窗口
2.链接数据库
mysql -uroot -p  (root是账号名,回车输入密码) 链接本地数据库
mysql -uroot -p -h111.11.111.11 -P5642    连接数据库服务器
-u:用户名
-p:密码
-h:服务器主机,可以是域名,也可以是IP地址。
-P:端口
3.选择数据库
use database;
4.改参数
set names utf8; #设置编码格式,防止乱码
set unique_checks = 0;
set Autocommit = 0;
5.导入文件
source xxx.sql   (直接回车,不需要分号)

后面是绝对路径哦!!!

6.恢复参数
set unique_checks = 1;
set autocommit = 1;








  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值