跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 西数蓝盘批量写入, 主键 uuid, 无限掉速
未分類
1 4 月 2021

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

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

資深大佬 : bthulu 0

家用电脑, 西数蓝盘, 系统 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 

大佬有話說 (24)

  • 資深大佬 : loginv2

    阿里云不太可能用家用型号吧
    关注一下写入时温度?

  • 資深大佬 : murmur

    你的蓝盘是叠瓦盘么,叠瓦盘只适合做冷仓库不适合做并发,缓存区内很好,出了缓存稍微有点读写并发就趴窝

  • 資深大佬 : lewis89

    不好说 可能蓝盘转速太差了吧 会不会是这样…

  • 資深大佬 : CallMeReznov

    缓内 VS 缓外

  • 資深大佬 : ch2

    任务管理器打开看看磁盘性能指标就知道了,大量随机写的时候,smr 的响应时间会暴涨

  • 資深大佬 : lu5je0

    innodb 页分裂

  • 資深大佬 : matrix67

    测硬盘用 fio 先跑啊

  • 資深大佬 : lasfresas

    1.他们用的盘更好,不是蓝盘也不是黑盘
    2.raid

  • 資深大佬 : lewis89

    @ch2 可能主新买的蓝盘吧,现在市面上清一色的蓝盘 都是 SMR 写入一次要刷写 0-4 个磁道 ,确实随机写的话,如果缓存写满了,掉速是难以避免的..

  • 資深大佬 : goodryb

    首先,云厂商至少用的也是企业级的硬盘,不管是 HDD 还是 SSD
    其次,除了本地盘,云盘全部采用的是分布式存储技术,也就是说你的数据是分散在多块硬盘上的,性能根据你购买的存储规格各有不同,但基本都能保证偏差不多

  • 資深大佬 : love

    我以为 mysql 别用随机主键是基本共识了呢
    uuid 你不但当主键还用了 varchar(32)多费一倍内存

  • 資深大佬 : ak47iej

    WD 蓝盘 HDD 除了 1T 是 7200rpm+CMR, 以上的全都是 5400rpm+smr….写入肯定感人,买 ssd 蓝盘就没这个问题了

  • 資深大佬 : MeteorCat

    企业级硬盘和家用级硬盘不一样,人家那是 sas 硬盘

  • 資深大佬 : liprais

    测下 iops 呗

  • 資深大佬 : yc8332

    uuid 做主键。这个影响性能

  • 資深大佬 : opengps

    这个问题,我遇到了,关键字“聚集索引”,参考下我的博客: https://www.opengps.cn/Blog/View.aspx?id=284&from=v2ex

  • 主 資深大佬 : bthulu

    @opengps @yc8332 跟聚集索引无关. 聚集索引是会降低性能. 但是家用机降低十分严重, 阿里云主机就影响不大, 同样都是 uuid, 同样是聚集索引, 那他们之间的性能差别, 是怎么来的?

  • 資深大佬 : opengps

    @bthulu 你还没看我博客要说的重点,我的意思是,用聚集索引决定物理写入位置是尾部追加,从而避免因为维护默认主键索引带来的额外性能损耗。另外,云服务器的硬盘本身是个弱点,云硬盘的 io 本身就是严重损失的

  • 資深大佬 : systemcall

    去买个 SSD,用一下 SSD,就知道区别了
    话说现在用电脑还有不上 SSD 的吗? 200 多就可以买个铠侠 240G SSD 了,那个就可以日常使用了

  • 資深大佬 : kokutou

    报出型号嘛…

    如果你看 1t 以上的容量好像很便宜就买了, 那大概率买到叠瓦…

  • 資深大佬 : exploreexe

    手里的两块红盘刚报废,以后再也不会买西数的硬盘了,是真的垃圾。

  • 資深大佬 : wmjie

    1. 建议不要用 uuid 做主键。
    2. ecs 的用的哪个盘不重要,重要的是他是直接落盘了,还是会进行了特殊的调优:比如在内存缓存了一下?

  • 資深大佬 : securityCoding

    1. 先用 fio 测试下磁盘 iops,修改 mysql 设置
    2. uuid 做主键要不得,会触发页分裂,io 次数会增加很多

  • 資深大佬 : yc8332

    @bthulu 云主机不是一块硬盘。。都是磁盘阵列,可能还是 ssd 。。他们的 io 都是优化过的。速度肯定比你单盘快

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具