java - 使用 Hibernate 将 csv 文件导入 MySQL 数据库

标签 java mysql hibernate csv groovy

我正在尝试将一个 csv 文件导入 MySQL 数据库,并且我在 groovy 中创建了一个脚本以使用 Hibernate 执行此操作。问题是,csv 文件非常大,大约有 4800 万行。我正在打开一个 session 并为每一行提交一个事务,但后来我发现这需要很长时间。按照运行脚本一天后添加到数据库的行的速度,导出所有内容需要一个多月的时间。所以,我想瓶颈可能在于打开一个 session 并为每一行提交一个事务......然后我决定只打开一个 session ,读取每一行,为每一行实例化一个实体,将它保存在 session 中,并在读取所有 4800 万行并将 4800 万个实体存储在 session 中之后,使用所有这些实例提交一个事务。好吧,那也没有用。有什么方法可以更快地将此 csv 文件导入 mysql 数据库吗?还是真的需要那么长时间?

最佳答案

我建议你不要使用 Java 而使用 LOAD DATA INFILE 'c:/tmp/discounts.csv' ...

参见 http://www.mysqltutorial.org/import-csv-file-mysql-table/

关于java - 使用 Hibernate 将 csv 文件导入 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25601467/

相关文章:

java - Hibernate二级缓存和Hudson

java - jar 中的 MANIFEST.MF 有问题

java - 如何使用 IDE 在 Java 中快速运行静态代码片段?

Java jar 在 maven 资源文件夹中找不到文件

php - 时间戳在 phpmyadmin 中显示错误的时间

php - 当在不同页面上单击 anchor 标记时,如何更改 php 脚本中的 PHP 变量?

mysql - Case 或 IF THEN 为值添加减号

java - Datagramsocket : how receive(. ..) 处理数据包的碎片

java - 当 Hibernate 从 4.x 升级到 5.x 以及 Spring 4.x 进行多线程时出现 ConcurrentModificationException

mysql - 是否有 ifnull() 的替代品