二三十万条数据 你是如何一次性导入数据库的?
请各位写下思路,或者贴出代码,
最好能发到邮箱,java_coding@126.com 谢谢。。。^_^
------解决方案--------------------这问题问得,这二三十万是什么格式的数据?还是二三十万行的 INSERT 语句?
------解决方案--------------------批量导入
或则多线程来
看到ls
我不敢回答问题了
------解决方案--------------------批量是比较好的方式,而且不能一次性,要分批多次导入。
我真不敢说谁一次性敢导入这么多!
内存肯定受不了。
还有看你的数据有多大,一般情况下一千条提交一次,看你的机器性能。
------解决方案--------------------应该是从文件读吧?2、30万放内存应该不现实。
读文件读到1万条记录,
用preparedStatement,
executeBatch()
commit。
继续读
------解决方案--------------------批量插入 或者多线程吧
------解决方案--------------------好像每种数据库都提供一种读大数据的方法的,不过我不是很清楚。
------解决方案--------------------你的数据时什么格式的?如果是excel的可以用命令直接插入
------解决方案--------------------Java code
for (int i = 1 ; i <=30 ; i++){
先读取1W条,然后批量插入数据库中
commit;
}
------解决方案--------------------
关注
------解决方案--------------------
几千行的Excel数据导入都要跑两分钟左右的,几十万行,估计是要崩掉的... ...
------解决方案--------------------
我以前用POI处理过EXCEL数据,但是能处理效率很低,后来我数据格式改成csv的,就好多了。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
批量导入数据库~
强烈建议不要自己写程序 实现,应该遵循如下原则:
1. 优先考虑使用 数据库 提供的批量导入命令实现,速度快,效率高(oracle 就有sqlldr命令)
2. 优先考虑使用命令行,直接导入.例如:insert table ……
3. 最后 才是考虑自己写程序 进行数据导入~
你就二三十万数据 算什么?也不算很大量的,我曾将将200万数据导入至 db2 至花了 5秒不到的时间。
我是用的db2 批量导入的命令:
db2 "export to RPT_DIRECTORY_FILE_new_1.txt of del select * from RPT_DIRECTORY_FILE where rpt_id in('A3015','A3021','A3037','A3047')"
------解决方案--------------------
imp buffer=大点 direct=y
------解决方案--------------------
分批是个好主意,一般1W条提交一次,这样不影响性能。
------解决方案--------------------
学习一下。
从来没导过这么多的数据。
------解决方案--------------------
同4楼
分批量提交
------解决方案--------------------
1000条提交一次,一会就搞定了。
------解决方案--------------------
50条一次的,批量执行,JDBC的。。我导过2000W的,都没有问题。只用了半天。2台电脑
------解决方案--------------------