MySQL数据库百万数据量导入爬坑
1.使用工具Navicat Preminu 12导入百万数据级别的数据到MySQL数据库
1.1 通过excel导入
首先进入Navicat Preminu 12后选择要导入的表,右键会有导入向导这一项,选择导入向导,再选择需要导入的类型,然后加载要导入的文件,配置对应字段名称、导入的范围、时间格式、插入的策略(追加、更新、追加和更新、删除、复制)等等,最后点击开始就可以愉快的开始导入了。当全部成功后会返回Processed总的条目数,Added新增的条目数,Updated更新的条目数,Deleted删除的条目数,以及Errors错误的条目数。如果有不成功的条目会在上面出现该条目的信息(当然希望大家一次都全部成功了,Finished successfully!)
2.导入过程遇到的坑
2.1 自动生成uuid
通过下面的公式可以在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服务之后,重启一下数据库工具,重启解百毒。。。多么痛的领悟。。。
- 点赞
- 收藏
- 关注作者
评论(0)