我需要把一个1G左右的txt与数据库中的表进行对比,然后进行更新或插入,有什么办法可以快速实现么?

我需要把一个1G左右的txt与数据库中的表进行对比,然后进行更新或插入,有什么办法可以快速实现么?,第1张

你的txt文件中的数据有格式吗,如果有格式的话,你可以使用 【外部表】 的形式进行导入,这样导入的速度一般会比较快

导入以后,直接使用SQL语句进行比较,相信会比其它的方式要快些

外部表参考页面:http://www.cnblogs.com/lanzi/archive/2010/12/28/1918755.html

首先说明本人只测试了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看对应的库记录和大小或者上次更新时间是否在变化就好了。

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9905600.html

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

发表评论

登录后才能评论

评论列表(0条)

保存