Java-java读取txt文件,然后存到数据库中。

发布于 2016-11-01 06:25:55 字数 107 浏览 1271 评论 1

txt文件为2.4G的gps导航数据,是以逗号隔开的标准txt文档,怎样实现快速的存储,我现在3000多万行的数据存了2天。读取TXT用的 BufferedReader,插入数据库用的addBatch

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜柠檬 2016-11-21 04:58:18

一般来说, 瓶颈在数据库. 不过就算3000w数据, 两天没存完, 那肯定是你的程序的问题了.

用jdbc/mysql5.5/innodb在我的本本上做了一些实验,
用的表很简单
create table a(id int);

以下仅是对可能的优化做了很简单的测试:

1). 关闭autocommit.
conn.setAutoCommit(false);
然后500条数据一次提交, 插入1w条数据快了10倍.

2). mysql的优化, 在jdbc url加入 "rewriteBatchedStatements=true", 即url为:
jdbc:mysql://localhost/test1?user=root&password=&useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
插入20w条数据, 速度快了7倍.

3). 索引. 带索引插入3000w条数据, 用时821秒; 去掉索引, 用时620. 可以考虑导入完成后重现创建索引.

PS:

1). 3000w条数据, 真该考虑分表了;
2). jdbc做大数据量导入确实慢, 各个数据库都有自己的数据导入工具, 效率高很多的.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文