navicat导入数据复盘

文章讲述了在面对240万大数据量时,作者遇到查询效率低下、数据复制报错、主键添加失败等问题,尝试通过备份表、优化表结构、使用EmEditor文本编辑器进行数据处理,最终解决超时和导入限制的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目标场景:

整个省的数据总数量240万,查询效率极差,所以急需要处理

问题一:将表备份cv出来一份

复制时间极长,伴随着报错终于复制完了,并且数据量出现问题了,大致上翻了一倍,好几次都是这样,决定就基于此备份表操作

问题二:加主键再加索引

备份一张表后出来后进行优化,一看表机构,发现连主键都没有,更别说索引了,所以决定先加主键再加索引,然而,由于数据量太大,表机构在有数据的情况下主键加不上,navicat直接崩,试了很多次不成功放弃了,同样索引也加不上...

问题三:删除报错超时

这里想只留下本市的数据,就根据所在市字段,把范围的非目标数据删除,发现delete语句根本运行不了,超时报错,navicat都卡崩了

问题四:查询报错超时

回头重启navicat,查询外围非目标数据发现查询时间过了好久,一看报错又超时

只能用count(字段)查数量勉强有返回,需要好几十秒,count查询是目前唯一有效的SQL

问题五:分页显示太多也会卡,删除操作更卡,navicat直接崩

想把表每页展示十万条,再按照目标字段名称排序显示,直接手动一页一页删,因为字段比较多,等了好久,终于取出来了一页数据,想目标字段排序,直接卡崩

超时......

到这里就发现用navicat工具已经满足不了需求了,就想把表结构和数据分别导出来,把数据处理了再写进新表

问题六:等了好久导出的SQL文件结果过大,打不开,一看文件属性将近7个G,我滴乖乖

问题七:在网上找超级文本编辑器EmEditor,(已保存云盘)

记录一下安装教程:解压即可使用

1.软件下载后,选中下载的软件安装包,解压

2.双击打开解压后的软件文件夹

3.找到EmEditor.exe双击运行

4.软件打开后,点击帮助,点击关于EmEditor

5.点击如何购买/输入密钥

6.点击输入密钥(密钥见文章末尾处)

7.自定义输入姓名,复制粘贴密钥进去(密钥见文章末尾处)

8.点击确定

9.查看是否成功:点击帮助,点击关于EmEditor

10.创建桌面快捷方式:选中EmEditor.exe鼠标右键,选择发送到, 选择桌面快捷方式即可

文本编辑器EmEditor v20.4.0下载地址

链接:

https://pan.baidu.com/s/1ig0_noLkLFw-II-9DSDPyQ?pwd=3egb

提取码:3egb

终身授权密钥:DMAZM-WHY52-AX222-ZQJXN-79JXH

问题八:打开后才觉得要把目标字段放最前面

于是把表字段顺序调整到最前面,再重新导出,准备把除目标字段以外的数据insert语句都删了

问题九:240万数据太多了,删不完,根本删不完。。。

删了好一会才整理出几万条,一合计至少得一两天的工作量,,,

问题十:想只把目标字段的数据导出来,却发现查询数量与count不一样

所有后台全部停了,只用navicat,终于把目标字段数据查出来了,却发现和计数查询的结果不一致,查了资料navicat处理超大量级的数据会出异常,就使用导出的这个吧

问题十一:把本市的数据导出为insert语句,放到记事本发现语句却少目标表名

问题十二:insert语句太大,根据提示调整idea把idea整崩了,启动不起来了

就想放到idea里面,用多行操作加上表名,结果idea报错说内存不足,加载不动剪切板里这么多的数据,提示可以修改加载的空间大小并重启生效,我看到是512M,就在后面加了个0,然后重启idea,就启动不起来了

问题十三:只好重新安装了一个idea,下班回家,次日继续

找了好多版本的idea才有一个版本能正常使用

批量处理还是太慢,使用文本编辑器的查找替换功能,将所有的半截建表语句和括号删掉后准备直接导入

问题十四:导入时发现处理的数据用不了,因为分隔符和原数据冲突

确定了栏位分隔符,仔细一看数据,发现除了正常的分隔符所在,连数据居然也有使用英文逗号。。。

这个导入方法弄不来了,重新想办法

问题十五:insert语句批量加上表名

想了想还是使用SQL导入吧,查找将所有``.``替换为`库名`.`表名`,再拖到粘贴到

卡的无响应后等了一会,终于处理完了

问题十六:数据量太大,使用剪切板复制不到navicat里面

全局查找没有` `.` `后复制,到navicat中新建查询,结果太大了,剪切板复制不动,,,

直接把文件后缀名改为.sql  ,再直接拖到对应的库,根据运行提示开始即可

等了老大一会,数据终于是进来了

Navicat 提供了多种方式可以加速从外部文件导入数据数据库的过程: 1. **预览功能**:在正式导入之前,预览即将导入数据,这样你可以检查是否有错误或者需要修正的内容。 2. **批量导入**:对于大量数据导入Navicat 支持批量导入,这种方式比逐条插入效率高很多。它会一次读取处理大量行的数据,避免了多次网络传输和数据库操作,大大提高了速度。 3. **优化SQL语句**:确保用于导入数据的 SQL 语句是最优化的。避免使用不必要的JOIN、ORDER BY 或 LIMIT 等操作,尤其是当它们在导入过程中应用时,因为这会增加查询复杂性和运行时间。 4. **分批导出**:如果数据量非常大,可以考虑将数据分成多个较小的批次进行导入,每次处理一小部分数据,这种方法可以在一定程度上减少单次导入过程的压力,有助于发现潜在的问题。 5. **压缩导入文件**:在 Navicat 中可以对文本文件进行压缩后再导入,虽然解压会消耗一些CPU资源,但在大型文件导入时,减少磁盘I/O操作可能会带来整体性能提升。 6. **选择合适的编码**:确保导入文件使用的编码与数据库兼容,避免因编码转换而造成的额外步骤和时间开销。 7. **利用索引和主键**:在导入前清理或更新表的索引,尤其是在导入大量数据后,更新索引可以帮助提高后续基于该表的查询性能。 8. **使用高效的连接方式**:通过配置更有效的数据库驱动程序和网络协议(例如,使用TCP而不是UDP),可以提高数据传输的速度。 9. **定期维护数据库**:确保数据库处于最佳状态,定期运行碎片整理和维护任务,保持数据库的健康状态,这间接地帮助了数据导入的效率。 10. **硬件升级**:最后,如果上述技术手段都无法满足需求,那么可能需要从硬件角度入手,比如增加内存,优化硬盘或使用更快的存储解决方案等。 --- 相关问题: 1. 使用 Navicat 导入数据有哪些常见错误及其解决办法? 2. Navicat 中如何设置和管理导入规则以自动化导入流程? 3. 当从Excel导入数据MySQL时,Navicat 提供了哪些额外的工具或选项来提高效率?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值