MySQL不同插入方式性能对比实验

最近负责的项目需要数据同步入库MySQL,为了测速那种入库方式效率比较高,为此进行了以下的对比实验,在此记录一下

实验表单数据格式


实验代码

共三种方法对比

mutiSqlInsert:

一条一条插入,最后一次提交

singleSqlInsert:

用for循环拼接好插入sql,一次执行

executeBatchInsert:

使用MySQL提供的方法executeBatch(),同样使用一次提交

实验结果

1W条数据插入

mutiSqlInsert

singleSqlInsert

executeBatchInsert

10W条数据插入

mutiSqlInsert

singleSqlInsert

executeBatchInsert

2000条数据插入(当前kafka设置的单次最大拉取数为2000)

Kafka配置截图

mutiSqlInsert

singleSqlInsert

executeBatchInsert

结论

在一次性拉取数据较少时,mutiSqlInsert和executeBatchInsert的性能相差不大

当一次性插入数据非常多时,比如10W条,singleSqlInsert的性能会急剧下降,甚至不如mutiSqlInsert

关于10W条数据插入时singleSqlInsert的性能会急剧下降的原因,参考此文
https://blog.csdn.net/Tom_sensen/article/details/127922964

相关推荐
最贪吃的虎14 小时前
Git: rebase vs merge
java·运维·git·后端·mysql
QQ142207844914 小时前
没有这个数据库账户,难道受到了sql注入式攻击?
数据库·sql
残 风14 小时前
pg兼容mysql框架之语法解析层(openHalo开源项目解析)
数据库·mysql·开源
勇往直前plus14 小时前
MyBatis/MyBatis-Plus类型转换器深度解析:从基础原理到自定义实践
数据库·oracle·mybatis
cyhysr15 小时前
sql将表字段不相关的内容关联到一起
数据库·sql
九皇叔叔15 小时前
MySQL 数据库 MVCC 机制
数据库·mysql
此生只爱蛋15 小时前
【Redis】Set 集合
数据库·redis·缓存
bjzhang7515 小时前
C#操作SQLite数据库
数据库·sqlite·c#
hans汉斯15 小时前
嵌入式操作系统技术发展趋势
大数据·数据库·物联网·rust·云计算·嵌入式实时数据库·汉斯出版社
Coder_Boy_16 小时前
Spring 核心思想与企业级最佳特性(实践级)事务相关
java·数据库·spring