主要观点总结
本文介绍了如何将导入操作耗时从300秒优化到4秒,涉及XML文件导入到MySQL数据库的过程。文章涵盖了批处理、异步写、Disruptor并发队列等优化方法。
关键观点总结
关键观点1: 优化起点和基础实现
文章开始时介绍了基础实现的性能问题,包括环境配置和代码运行的情况。
关键观点2: 批处理优化
通过开启MySQL的批处理,将多条SQL语句合并在一起执行,减少了网络传输和数据库进程写数据的成本。
关键观点3: 异步写和Disruptor并发队列
通过引入Disruptor并发队列实现异步写,进一步缩短了请求方的等待时间,提高了性能。
关键观点4: 其他优化方向
提到了XML解析的优化、Disruptor内存占用的优化以及MySQL写性能的优化,并给出了相应的解决方案和建议。
文章预览
Boot+Cloud项目学习: macrozheng.com 最近碰到一个场景,从 XML 文件导入 6 万多条数据到 MySQL 中。需求并不复杂,基于 XML 文件和 xlsx 文件的相似性,其实这就是一个老生常谈的数据导入问题。 本文将介绍我如何将导入操作耗时从 300 秒优化到 4 秒。 代码运行的环境 Java 代码在笔记本上运行,MySQL 在局域网内的虚拟机上。 笔记本配置八核 i9 2.3 GHz,16 GB 内存,最近气温偏高,CPU 存在降频现象,对执行耗时有一定影响。 MySQL 数据库运行在 VirtualBox 虚拟机内。虚拟机分配了 4 核 4 GB 内存,但宿主机硬件性能比较羸弱,导致 MySQL 写入耗时较长。 JDK 采用 21 版本,MySQL 采用 8.0 版本。 在这个环境配置下,从 XML 文件中读取一条数据耗时 0.08 秒,向 MySQL 导入一条数据耗时 0.5 秒。 基础实现的性能 基础实现就是过程式处理方式。 void importData () { Document
………………………………