4 千余万条格式文本数据导入 mysql,我准备写 shell 脚本导入数据库,大家有什么更好的建议?

2014-12-02 11:17:40 +08:00
 kofj
Mingw,准备写shell脚本导入到mysql数据库。Navicat好用但是肯定卡,不能忍受,大家有什么更好更高效的方法?

4844 次点击
所在节点    问与答
14 条回复
flynnX
2014-12-02 11:22:43 +08:00
处理成批量插入的sql语句,然后执行试试,我试过一次批量插入20+W条数据,几秒搞定。建议开启事务再插入,以防数据有误,可能还有需要设置mysql packet大小,如果你的文本太大的话
jianghu52
2014-12-02 11:26:30 +08:00
我数据量没你那么大,大概1千万条,navicat就已经卡的不行了。后来实在没办法,他们写的python脚本,把记录分成10个文件,然后一个个导入数据库。有时间,就是这么任性~
linkiosk
2014-12-02 11:28:54 +08:00
写好shell别忘了共享一下
kofj
2014-12-02 11:35:51 +08:00
@flynnX 谢谢提醒,文本不大

@jianghu52 实测4G内存下Navicat会报错:memory out。BTW,分割文本不用专门写python吧?我的数据是单行有分隔符的,分割很容易

@linkiosk sure
billwang
2014-12-02 11:36:55 +08:00
数据量不大,可以等负载低的时候分时分阶段搞定。随时监控服务器负载及空间情况。oracle的话还得监控归档空间使用,mysql应该不用。
mhycy
2014-12-02 11:37:29 +08:00
处理成SQL语句以后直接在服务器上用mysql管理器用source命令导入
jianghu52
2014-12-02 11:39:38 +08:00
你是直接copy到query下执行啊。还是用的dump sql 的形式执行的?
dump sql 也会报错么?
mahone3297
2014-12-02 11:50:15 +08:00
bulk insert
xiaogui
2014-12-02 13:50:57 +08:00
使用 dump
pi1ot
2014-12-02 13:54:25 +08:00
load file?
a591826944
2014-12-02 13:54:45 +08:00
弄成 sql 用命令行 轻松导入啊 命令行最快了
markmx
2014-12-02 13:57:44 +08:00
不管是什么导入 如果表类型是iNNODB的话。记得先google一下。。会快很多的!
Battle
2014-12-02 15:35:09 +08:00
求助,我也遇到了你这个问题;
我的是Access文件,每一个文件都是上百万条的数据,估计navicat会卡死,不知道怎么用shell导入到mysql中
hanwujibaby
2014-12-02 19:06:36 +08:00
切分文件入库。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/150866

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX