MySQL数据百万数据量导入爬坑

网友投稿 843 2022-05-28

1.使用工具Navicat Preminu 12导入百万数据级别的数据到MySql数据库

1.1 通过excel导入

首先进入Navicat Preminu 12后选择要导入的表,右键会有导入向导这一项,选择导入向导,再选择需要导入的类型,然后加载要导入的文件,配置对应字段名称、导入的范围、时间格式、插入的策略(追加、更新、追加和更新、删除、复制)等等,最后点击开始就可以愉快的开始导入了。当全部成功后会返回Processed总的条目数,Added新增的条目数,Updated更新的条目数,Deleted删除的条目数,以及Errors错误的条目数。如果有不成功的条目会在上面出现该条目的信息(当然希望大家一次都全部成功了,Finished successfully!)

2.导入过程遇到的坑

2.1 自动生成uuid

参考

MySQL数据库百万数据量导入爬坑

通过下面的公式可以在excel中生成uuid,但是生成的uuid会出现很多的#NUM!,这个情况还有待研究,不知道是公式的问题还是,因为excel的格式问题,反正在使用的这个公式生成uuid的时候一定要注意这一点,当大批量生成uuid,需要检查一下有没有#NUM!这种没有生成成功的情况,然后将这些没有成功的uuid人工处理一下,都是泪啊。。。处理办法可以将值复制,然后粘贴成数值,将#NUM!全部替换为先的公式,如此反复只到查不出#NUM!这个为止。。。

=LOWER(CONCATENATE(DEC2HEX(RANDBETWEEN(0,POWER(16,8)),8),"",DEC2HEX(RANDBETWEEN(0,POWER(16,4)),4),"","4",DEC2HEX(RANDBETWEEN(0,POWER(16,3)),3),"",DEC2HEX(RANDBETWEEN(8,11)),DEC2HEX(RANDBETWEEN(0,POWER(16,3)),3),"",DEC2HEX(RANDBETWEEN(0,POWER(16,8)),8),DEC2HEX(RANDBETWEEN(0,POWER(16,4)),4)))

2.2 磁盘已满

但导入的过程中出现了磁盘满了。。。满了。。。这时候发现部署的mysql给的磁盘空间已经没有了。。。坑啊。。。只能挪个地方了,那么开始挪mysql。。。

2.2.1 首先是一波查询的指令:

df -hl:查看磁盘剩余空间

df -h:查看每个根路径的分区大小

du -sh [目录名]:返回该目录的大小

du -sm [文件夹]:返回该文件夹总M数

du -h [目录名]:查看指定文件夹下的所有文件大小(包含子文件夹)

2.2.2 将mysql整个文件夹通过cp指令,拷贝到需要拷贝的地方,并且赋对应的权限

查询权限的指令是:ls -l

赋权限的指令的是:chmod -R 777 文件名称(此为最大权限啥权限都有。。。)

2.2.3 修改my.conf配置文件将文件中的datadir的路径、log-error的路径、pid-file的路径修改为现在拷贝好的地方

2.2.4 这里要注意如果挪的地方赋权限给了外面一层文件夹,有可能里面的mysql文件夹没有被赋上权限,所以还需要再对挪来的mysql文件夹再赋一次权限

2.2.5 重启mysql,使用 service 启动指令是 :service mysqld restart

2.2.6 如果在挪的时候你在使用数据库工具,一定记得在重启挪好的mysql服务之后,重启一下数据库工具,重启解百毒。。。多么痛的领悟。。。

MySQL 数据库

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Git重置代码失败,你不能忽略的那些原因!
下一篇:android中input的实现
相关文章