网站首页 > 技术文章 正文
昨天想做了个性能测试,没想到结果太意外,MySQL插入10万条数据居然花费了15分钟左右,强烈怀疑是在Docker部署的MySQL的问题。今天下载了一个安装版本的MySQL进行测试。
准备工作
同样是 user_mysql 表,与上一篇一致,代码也一致。
运行环境
- MySQL版本:8.1.0
- 电脑配置:相同配置
- 运行环境:windows 操作系统上直接安装的MySQL
测试结果
每批数量 | 耗时 (第一轮) | 耗时 | 耗时 | 耗时 (第n轮) | 平均耗时 | 每秒写入速度 |
100 | 3m 45s | 3m 52s | 3m 46s | …… | 3m 47s | 440 |
500 | 2m 11s | 2m 11s | 2m 10s | …… | 2m 10s | 770 |
1000 | 2m 10s | 2m 9s | 2m 12s | …… | 2m 10s | 770 |
3000 | 3m 46s | 3m 46s | 3m 52s | …… | 3m 48s | 439 |
5000 | 3m 48s | 3m 49s | 3m 47s | …… | 3m 48s | 439 |
10000 | 3m 51s | 3m 47s | 3m 54s | …… | 3m 51s | 437 |
与Docker中部署MySQL对比
每批数量 | windows安装版 | docker安装版 |
100 | 3m 47s | 17m 47s |
500 | 2m 10s | 14m 35s |
1000 | 2m 10s | 14m 28s |
3000 | 3m 48s | 14m 21s |
5000 | 3m 48s | 15m 08s |
10000 | 3m 51s | 16m 11s |
总结
- 批量插入1000每批性能最佳(不同机器结果可能不一样,可自行测试),不建议过小的批量插入或过大的批量插入。
- windows安装版和docker 安装版在默认参数情况下性能差异较大,差距在5 ~ 7 倍,docker版参数没有调整的情况下,可能在资源方面收到较大限制,因此性能较差,下次有时间调试下docker版参数配置。
猜你喜欢
- 2025-05-02 MySQL自增ID用完了怎么办?4种解决方案!
- 2025-05-02 牛哇!MySQL中的日志“binlog”的三种格式这么好玩
- 2025-05-02 从B+树原理到实战:MySQL索引设计的22条军规
- 2025-05-02 mysql数据库基本增删改查操作总结
- 2025-05-02 MySQL索引效率太快,1亿数据查询不到1秒
- 2025-05-02 MySQL大数据表处理策略,原来一直都用错了……
- 2025-05-02 在MySQL命令行中获取用户账户列表的方法
- 2025-05-02 MySQL分库分表设计方案:大道至简,数据不乱
- 2025-05-02 从零到亿级数据:MySQL 分库分表实战避坑指南
- 2025-05-02 MySQL 批量写入性能暴增 10 倍!资深工程师的 7 个狠招(附实战代码)
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- js判断是否空对象 (63)
- sqlset (59)
- phprequire_once (61)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)