这几天打算找张千万级MySQL表做个测试,看了看本地一些开发用的表数据量均在百万级。MySQL官方示例库Employees也是4百万行左右,打算生成一份模拟数据。
查了查资料,有些使用存储过程,有些使用java代码实现。由于本人想生成的模拟实现尽可能贴近实际业务场景,参考以下文章的思路,并改进部分实现。
1亿条数据批量插入 MySQL,哪种方式最快?
使用JDBC批处理,开启事务,平均每 1.9 秒插入 十万 条数据
https://blog.youkuaiyun.com/china_coding/article/details/129680251
生成数据的效果图
在笔记本上安装一个2核8G的虚拟机,各列没有计算模拟值时每10万行耗时1.5秒左右,增加模拟值算法后每10万行耗时6秒左右,总耗时20分钟左右。由于姓名、性别、email、手机、地址等用的随机数较多,还有一定优化空间,待有时间再优化。
是一个控制台程序,启动后立即进行计算,通过控制台输出查看进度。
源代码已经签入gitee
https://gitee.com/pangshw/mysql-mock