为什么 MySQL8.0 比 MySQL5.7 的插入性能差了这么多?

2020-02-27 00:12:23 +08:00
 epicq

同样的代码、同样的数据、同一台的机器

批量插入 860W 行数据

MySQL8.0 只有 600 行 /s

MySQL5.7 轻松破 7K 行 /s

都是 MyISAM 引擎

8.0 是需要什么特殊的优化技巧吗?

10595 次点击
所在节点    MySQL
43 条回复
epicq
2020-02-27 00:17:41 +08:00
我注意到 8.0 的硬盘占用达到 80%,5.7 只有 1%

这是为什么?
RedisMasterNode
2020-02-27 00:23:27 +08:00
可以给出具体代码和环境吗
RedisMasterNode
2020-02-27 00:23:44 +08:00
另外为什么还在用 MyISAM 引擎可以说下理由?
epicq
2020-02-27 00:27:37 +08:00
@RedisMasterNode 因为 InnoDB 更慢,而且没有事务需求。只是解析一个 2.66G 大小的 json 文件,大约 860W 行,准备作为机器学习的数据集来用。
est
2020-02-27 00:38:35 +08:00
> 都是 MyISAM 引擎

InnoDB 可以插入玩了再开事务。
mazyi
2020-02-27 00:46:20 +08:00
硬盘是一直高还是插的时候才高
epicq
2020-02-27 01:15:58 +08:00
@est 主要是我用不到事务,而且我这个需求 InnoDB 确实比 MyISAM 慢啊,难道我的理解或者用法出现了偏差?
epicq
2020-02-27 01:16:27 +08:00
@mazyi 插入的时候才高
epicq
2020-02-27 01:26:56 +08:00
我测试了一下

MySQL5.7:InnoDB_CPU15~30%_磁盘 85%_插入 600 行 /s
MyISAM_CPU45~60%_磁盘 1%_插入 8k 行 /s

MySQL8.0:InnoDB_CPU15~29%_磁盘 88%_插入 300 行 /s
MyISAM_CPU15~38%_磁盘 83%_插入 600 行 /s

WHY???
epicq
2020-02-27 01:28:46 +08:00
5.7 的 MyISAM 磁盘占用真的只有 1%,不是我打漏了,而且插入性能是其他 10 倍以上,WHY ???
lijialong1313
2020-02-27 02:00:40 +08:00
会不会是你使用的库的原因。
试一下插入做成一个事务看是否还有显著差异……
stabc
2020-02-27 02:29:34 +08:00
应该是 8 出于安全考虑默认开启了 WAL,也就是每条插入确认硬盘写入了 LOG 之后才开始下一条插入,这样保证了断电不丢失数据。 你 600/s 算是硬盘性能不错的了。查查手册把 WAL 关了就快了。
leviathan0992
2020-02-27 06:05:41 +08:00
配置一样不一样啊?
freelancher
2020-02-27 07:34:35 +08:00
那为什么不直接用。MYSQL 7?
luckylo
2020-02-27 07:55:21 +08:00
@freelancher 他要操作 json。对 json 的支持 8 要好一点。
换句话说,你不用事务,mongodb 不香么?手动狗头
xiaoyanbot
2020-02-27 07:56:33 +08:00
@freelancher 什么鬼,哪有 mysql 7 呀
xiaoyanbot
2020-02-27 07:56:51 +08:00
MyISAM 引擎,mysql 8 还支持?
iConnect
2020-02-27 08:02:51 +08:00
你机器什么配置?我看有没有接近的机器测一下
y0bcn
2020-02-27 08:21:17 +08:00
开启事务,会快很多。

当年做的一个小项目,刚开始学不懂,导入 excel 中的数据,要一分钟左右,慢的怀疑人生,开启事务之后只需要一秒左右完成了。
enlight
2020-02-27 08:53:59 +08:00
@luckylo MongoDB 不太香,性能照 PostgreSQL 差不少啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/647885

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX