发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

如何快速保存数量有380K之多的条目到MySQL?

    
2016-09-28 11:30
赞助商链接

假设你有380k个Java对象在内存中,你如何更快地将它们持久化保存到MySQL中?

首先想到的办法使用普通SQL通过JDBC保存,据测试通过Spring JDBC保存所有对象插入到数据库MySQL需要6分钟。

另外一个方案是使用“LOAD DATA INFILE”:
MySQL有LOAD DATA INFILE语句能让你非常快地从一个文件中加载大量数据然后保存到指定的数据表中。

第一步首先将内存中Java对象保存到磁盘上的CSV文件,第二步使用 LOAD DATA INFILE导入MySQL。

案例语句:

String sql = "LOAD DATA LOCAL INFILE '" + dataFilepath + "' into table " + tableName + " COLUMNS TERMINATED BY '" + INFILE_COLUMN_SEPARATION_CHAR + "' "; jdbcTemplate.execute(sql);

解释如下:
dataFilepath: 代表保存数据文件路径

tableName: 需要插入数据的表名

INFILE_COLUMN_SEPARATION_CHAR: 数据文件中分隔符号,CSV是",".

使用CSV文件导入380K条目到MySQL中需要3秒。

How to Quickly Load 380K Items Into MySQL - DZone

4
性能调优     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系反馈 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com