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

相关推荐
zhangchaoxies1 分钟前
C#怎么实现MVVM模式 C#如何在WPF中使用MVVM设计模式分离视图和逻辑【架构】
jvm·数据库·python
吕源林1 分钟前
防止SQL注入的应用层过滤_采用成熟的安全过滤中间件
jvm·数据库·python
m0_747854524 分钟前
Go语言如何做图算法_Go语言图算法实现教程【对比】
jvm·数据库·python
程序员雷欧11 分钟前
Redis进阶知识全解析:高可用部署与数据一致性实战
数据库·redis·缓存
GreatSQL社区12 分钟前
参数配置不当导致GreatSQL异步复制IO线程中断
数据库·greatsql
m0_3776182313 分钟前
SQL如何解决GROUP BY导致查询变慢_利用覆盖索引进行优化
jvm·数据库·python
小则又沐风a13 分钟前
深剖string内部结构 手撕string
java·前端·数据库·c++
Garcia Shan13 分钟前
【SQL Server】SQL Server中的DENSE_RANK()
数据库·sql
qq_3345635514 分钟前
如何提高SQL存储过程可维护性_解耦复杂业务逻辑
jvm·数据库·python
2301_7775993715 分钟前
Golang map底层实现原理_Golang map哈希表原理教程【收藏】
jvm·数据库·python