【发布时间】:2011-09-21 10:55:54
【问题描述】:
所以我在一个 Excel 文件中有大约 1000 万条记录,这些记录必须以特定方式解析(我不能只是转换为 CSV 并像那样插入它)并插入到 mysql 数据库的不同表中。我已经从花了一整夜减少到只花几个小时。但是我想进一步减少这个。有人有任何可以帮助我的技巧或提示吗?我正在使用 Java 和 JDBC 来解析和连接。
【问题讨论】:
-
你怎么能把它缩短到几个小时?
-
我的代码有很多低效之处。比如多次打开和关闭一个连接,所以我把它删掉了。我现在只打开一个持久连接。同样在我的原始代码中,我首先加载了所有数据,然后一次处理所有数据,将所有内容保存在内存中。现在我将它加载为 3 个块并一次处理每个块,从而在每个块完成后释放内存。我也有一些统计数据,我正在计算困难,所以我用一些哈希图清理了这些数据。可能还有其他东西,但我现在没有代码。
-
如果打算将同一个 excel 文件中的数据插入到不同的表中,我建议编写自己的脚本以从 excel 文件中读取并为相应的表生成 INSERT 语句,然后可以批量导入。或者,您的脚本可以直接将数据推送到数据库中。解决方案取决于此导入是一次性活动还是经常性
标签: java mysql optimization jdbc