navicat导入数据复盘

目标场景:

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

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

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

问题二:加主键再加索引

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

问题三:删除报错超时

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

问题四:查询报错超时

回头重启navicat,查询武汉市的数据发现查询时间过了好久,一看报错又超时

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

navicat导入数据复盘_第2张图片

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

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

navicat导入数据复盘_第3张图片

navicat导入数据复盘_第4张图片

超时......

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

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

navicat导入数据复盘_第5张图片

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

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

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

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

3.找到EmEditor.exe双击运行

navicat导入数据复盘_第6张图片

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

navicat导入数据复盘_第7张图片

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

navicat导入数据复盘_第8张图片

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语句都删了navicat导入数据复盘_第9张图片

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

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

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

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

navicat导入数据复盘_第10张图片

navicat导入数据复盘_第11张图片

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

navicat导入数据复盘_第12张图片

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

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

navicat导入数据复盘_第13张图片

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

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

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

navicat导入数据复盘_第14张图片

navicat导入数据复盘_第15张图片

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

确定了栏位分隔符,仔细一看数据,发现除了正常的分隔符所在,连数据居然也有使用英文逗号。。。navicat导入数据复盘_第16张图片

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

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

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

navicat导入数据复盘_第17张图片

navicat导入数据复盘_第18张图片

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

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

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

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

navicat导入数据复盘_第19张图片

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

你可能感兴趣的:(工作汇总,java,数据库,mysql)