西数蓝盘批量写入, 主键 uuid, 无限掉速

2021-03-30 15:52:46 +08:00
 bthulu

家用电脑, 西数蓝盘, 系统 Centos7, 用 docker 装了个 percona mysql 5.7.33. 创建了这么一张表, 执行批量写入测试.

CREATE TABLE `uc_user` (
  `ID` varchar(32) NOT NULL,
  `USER_NAME` varchar(20) NOT NULL,
  `USER_PWD` varchar(40) NOT NULL,
  `BIRTHDAY` datetime NOT NULL,
  `NAME` varchar(10) NOT NULL,
  `USER_ICON` varchar(200) NOT NULL,
  `SEX` varchar(1) NOT NULL,
  `NICKNAME` varchar(20) NOT NULL,
  `STAT` varchar(16) NOT NULL,
  `USER_MALL` double NOT NULL,
  `LAST_LOGIN_DATE` datetime NOT NULL,
  `LAST_LOGIN_IP` varchar(15) NOT NULL,
  `SRC_OPEN_USER_ID` double NOT NULL,
  `EMAIL` varchar(80) NOT NULL,
  `MOBILE` varchar(11) NOT NULL,
  `IS_DEL` decimal(1,0) NOT NULL,
  `IS_EMAIL_CONFIRMED` decimal(1,0) NOT NULL,
  `IS_PHONE_CONFIRMED` decimal(1,0) NOT NULL,
  `CREATER` varchar(32) NOT NULL,
  `CREATE_DATE` datetime NOT NULL,
  `UPDATE_DATE` datetime NOT NULL,
  `MAC` varchar(17) NOT NULL,
  `SOURCE` varchar(4) NOT NULL,
  `ACTIVATE` varchar(4) NOT NULL,
  `ACTIVATE_TYPE` varchar(4) NOT NULL,
  `IS_LIFE` decimal(1,0) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

每写入 500 条 commit 一次, 最终结果是, 随着写入量的增加, 每秒写入量逐步递减. 而我换成阿里云的 ecs, 同样在上面起了个 mysql5.7.33, 每秒写入量却能稳定在 4000. 这里的 id 是 uuid. 当把 id 换成自增主键时, 家用电脑每秒写入量就能稳定在 12000 了. 所以, 这里是不是因为西数蓝盘长时间 4k 随机读写掉速造成的? 而阿里云用的可能是西数黑盘, 4k 随机读写性能比较稳定?

已添加 9.6 万条数据, 每秒写入 6000
已添加 9.7 万条数据, 每秒写入 6062
...
已添加 20.0 万条数据, 每秒写入 5882
已添加 20.1 万条数据, 每秒写入 5742
...
已添加 22.0 万条数据, 每秒写入 5365
已添加 24.1 万条数据, 每秒写入 4820
已添加 26.0 万条数据, 每秒写入 4333
已添加 28.0 万条数据, 每秒写入 3888
已添加 30.0 万条数据, 每秒写入 3333
...
已添加 35.0 万条数据, 每秒写入 2397
已添加 40.0 万条数据, 每秒写入 1860
已添加 45.0 万条数据, 每秒写入 1525
已添加 50.0 万条数据, 每秒写入 1295
3138 次点击
所在节点    MySQL
24 条回复
exploreexe
2021-03-31 08:25:27 +08:00
手里的两块红盘刚报废,以后再也不会买西数的硬盘了,是真的垃圾。
wmjie
2021-03-31 08:45:36 +08:00
1. 建议不要用 uuid 做主键。
2. ecs 的用的哪个盘不重要,重要的是他是直接落盘了,还是会进行了特殊的调优:比如在内存缓存了一下?
securityCoding
2021-03-31 08:58:17 +08:00
1. 先用 fio 测试下磁盘 iops,修改 mysql 设置
2. uuid 做主键要不得,会触发页分裂,io 次数会增加很多
yc8332
2021-03-31 10:34:51 +08:00
@bthulu 云主机不是一块硬盘。。都是磁盘阵列,可能还是 ssd 。。他们的 io 都是优化过的。速度肯定比你单盘快

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

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

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

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

© 2021 V2EX