Java-java读取txt文件,然后存到数据库中。
txt文件为2.4G的gps导航数据,是以逗号隔开的标准txt文档,怎样实现快速的存储,我现在3000多万行的数据存了2天。读取TXT用的 BufferedReader,插入数据库用的addBatch
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
txt文件为2.4G的gps导航数据,是以逗号隔开的标准txt文档,怎样实现快速的存储,我现在3000多万行的数据存了2天。读取TXT用的 BufferedReader,插入数据库用的addBatch
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
一般来说, 瓶颈在数据库. 不过就算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做大数据量导入确实慢, 各个数据库都有自己的数据导入工具, 效率高很多的.