我想导入一个csv文件到MySQL数据库,并且我在groovy中使用Hibernate创建了一个脚本。事情是,csv文件非常庞大,大约有四千八百万行。我打开一个会话并为每一行提交一个交易,但后来我发现这需要很长时间。在运行脚本一天后,通过添加到数据库的行速度,需要一个多月才能导出所有内容。所以,我想也许,瓶颈在于打开一个会话并为每一行提交事务......然后我决定打开一个会话,读取每一行,为每一行实例化一个实体,将它保存在会话中,在读完所有4800万行并在会话中存储4800万个实体之后,对所有这些实例进行单个事务处理。那也不管用。有没有办法以更快的方式将这个csv文件导入到mysql数据库?或者它应该真的需要那么长时间?使用休眠导入csv文件到MySQL数据库
1
A
回答
3
我reccommend您不要使用Java和使用LOAD DATA INFILE 'c:/tmp/discounts.csv' ...
1
我发现解决问题的方法非常有趣的联系。也许它会有用 http://chriseiffel.com/everything-linux/how-to-import-a-large-csv-file-to-mysql/
+1
您能否将链接的内容放入您的答案中以确保能够抵御死链接的未来挑战?谢谢 – JustinJDavies 2014-09-01 08:50:58
2
在脚本中休眠?你一定在开玩笑! :)
我会坚持groovy.sql.Sql
,因为它使用简单灵活,并没有hibernate的负担与映射或会话刷新。
脚本可能会寻找如下:
Sql db = new Sql(...)
int flushCounter = 0
new File('my.csv').splitEachLine(/;/){ parts -> // or a full-blown csv-parser here
db.executeInsert 'insert into mytable (id,a,b,c) values (null,?,?,?)', parts
flushCounter++
if(0 == flushCounter % 1000) db.commit() // flush each 1000 records
}
db.commit()
db.close()
相关问题
- 1. 使用php mysql导入csv文件到数据库
- 2. 使用MySQL终端导入500mb csv文件到数据库中
- 3. 使用php导入大型csv文件到mysql数据库
- 4. 将数据导入csv文件到mysql
- 5. mysql异常导入csv文件到mysql数据库
- 6. 导入csv文件到oracle数据库
- 7. 如何使用codeigniter将csv文件数据导入到mysql数据库中?
- 8. 导入CSV数据到MySQL
- 9. 从CSV文件导入到mysql数据库错误
- 10. 将CSV文件导入到MySQL数据库的工具?
- 11. 将CSV文件导入到mysql数据库
- 12. 在PHP中将CSV文件导入到Mysql数据库中
- 13. 需要帮助导入.csv文件到mysql数据库
- 14. 导入CSV文件到MySQL
- 15. 在休眠中导入/导出为csv
- 16. 使用java从JSON文件导入数据到MySQL数据库
- 17. 使用django web应用程序将csv文件导入到mysql数据库
- 18. 导入CSV文件到Oracle数据库中使用Java
- 19. 使用php导入csv文件到数据库
- 20. 使用grails和GROM将csv文件导入到数据库中
- 21. 使用Python将CSV文件导入到sqlite3数据库表中
- 22. 如何将数据从csv文件导出到mysql数据库?
- 23. RoR - 使用smarterCSV gem导入csv到MySQL数据库
- 24. 增强csv文件数据库导入
- 25. csv文件导入数据库,php
- 26. 存储图像到MySQL数据库使用stuts 2和休眠
- 27. 将mysql数据导出到csv文件
- 28. 数据库+休眠
- 29. 如何将CSV文件中的数据导入到MySQL数据库
- 30. 如何从csv文件导入数据到数据库中?
您的意思是进口? – 2014-09-01 08:15:31
是“从mysql导出”还是“导入到mysql”? – cfrick 2014-09-01 08:15:36
我不知道如何做到这一点与休眠,但你可以很容易地导入一个csv文件到MySQL与加载数据infile http://stackoverflow.com/questions/14127529/mysql-import-data-from-csv-using -load-data-infile – luanjot 2014-09-01 08:18:38