目录

一、场景

二、UUID的版本

2.1 基于时间的UUID

2.2 DCE安全的UUID

2.3 基于命名空间的UUID(MD5、SH1)

2.4 基于随机数的UUID(最常用)

三、为什么 UUID 会引起IO异常

专栏链接:IT老齐架构300讲笔记专栏


一、场景

财政部金财工程平台在代理行日终结算时,经常出现磁盘的IO异常导致经常出现高延迟

这个问题一直困扰我们很长时间,对比发现在大量数据新增时磁盘IO居高不下,多次测试后发现是UUID主键在搞鬼。

二、UUID的版本

2.1 基于时间的UUID

  • 能保证不同设备UUID是唯一的
  • 同一设备上生成UUID可能重复

2.2 DCE安全的UUID

  • DCE(身份验证和安全服务)
  • 涉及侵犯用户隐私
  • 有损时间戳导致精度丢失

2.3 基于命名空间的UUID(MD5、SH1)

  • 在相同的命名空间下可能会出现UUID冲突

2.4 基于随机数的UUID(最常用)

  • 完全随机生成,会存在极小概率重复的情况
  • 外部环境无关,不涉及环境信息
  • 生成内容无序无规律
  • 目前的主流做法

三、为什么 UUID 会引起IO异常

UUID是无序的,当UUID可能在索引中间某一页插入数据时

新增记录所在的数据页已满,数据库需要申请一个新的数据页存储数据

这种现象被称为"页分裂"

页分裂确保后一个数据页中的所有的 ID 值一定比数据页中的 ID 值大

在大并发环境环境下增加了磁盘IO的压力,无序ID才是罪魁祸首

解决办法:改为有序的数字主键生成策略就可以了

美团Leaf / 推特Snowflake

IT老齐架构300讲笔记(047) 避坑分享财Z部金财平台用主键用了UUID后出现的问题相关推荐

  1. IT老齐架构300讲笔记(049) 比MySQL快100倍,解读cassandra列式数据库高性能背后的原理

    目录 一.列式存储 二.为什么列式存储性能这么高 2.1 行式存储查询的劣势 2.2 列式存储查询的优势(顺序读) 2.3 列式存储的问题 专栏链接:IT老齐架构300讲笔记专栏 一.列式存储 列式数 ...

  2. 架构300讲笔记1-100集

    十分钟说明白MySQL集群模式与应用场景 单库 一个数据库存放所有业务数据. 读写分离 将一个数据库拆分为读库和写库, 读写分离集群模式:在原有的基础上增加中间层,与后端数据集构成读写分离的集群.整体 ...

  3. MYSQL学习笔记06:列属性[NULL,default,comment],主键,自增长,唯一键,数据库设计规范[范式(1NF,2NF,3NF),逆规范化],表关系[1V1,1VN,NVN]

    列属性 列属性又称为字段属性. 在mysql中一共有6个属性:null,默认值,列描述,主键,唯一键和自增长. NULL属性 NULL属性代表字段为空. 如果对应的值为yes表示该字段允许为null, ...

  4. [老齐的求职攻略] 第四章 现场面对面

    第四章 现场面对面 面试通常是你与面试官第一次正面接触,不要认为面试只是考察你的技术与项目,过程中面试官会通过你的一言一行,一举一动了解你的内心.当你面试失败了,技术因素固然重要,但更重要的,是面试官 ...

  5. [老齐的求职攻略] 第七章 外包求职攻略

    第七章 外包求职攻略 什么是外包? 所谓"外包",白话就是甲方"委托方"将工作或任务交给乙方"实施方"完成的合作方式,成为外包.在中国软件业 ...

  6. 老齐学python的django 源代码_《跟老齐学Python:Django实战》真正的手把手“带”您学习...

    全书通过不断升级改造的方式,带着读者完成了一个"极其"简单的实战项目.这里说简单是相对于那些"大牛"而言.如果您是大牛,齐老师会建议您使用谷歌或者读官方英文文档 ...

  7. 跟老齐学Python:轻松入门pdf

    下载地址:网盘下载 内容简介  · · · · · · <跟老齐学Python:从入门到精通>是面向编程零基础读者的Python入门教程,内容涵盖了Python的基础知识和初步应用.以比较 ...

  8. python从入门到精通pdf百度云下载-跟老齐学Python从入门到精通 电子版(pdf格式)...

    跟老齐学python从入门到精通是一款由老齐写作的Python电子书籍.书籍讲述了零基础读者的Python入门教程,内容涵盖了Python的基础知识和初步应用,需要的赶紧在巴士下载站下载吧! 目录: ...

  9. 零基础python从入门到精通 pdf-跟老齐学Python从入门到精通

    跟老齐学Python从入门到精通是一款由老齐写作的Python电子书籍.书籍讲述了零基础读者的Python入门教程,内容涵盖了Python的基础知识和初步应用,需要的赶紧下载吧! 目录: 第1季 基础 ...

最新文章

  1. 分区表--SQLServer创建分区表
  2. 2017 清北济南考前刷题Day 2 afternoon
  3. linux内核杂记(12)-进程调度(7)
  4. 百度媒体云智能编码技术实践
  5. io流不关闭会怎么样_幸福树一个月不浇水会怎么样
  6. session.setAttribute和request.setAttribute的区别
  7. linux server.xml日志参数,Linux Log4j+Kafka+KafkaLog4jAppender 日志收集
  8. Cocos2d-x3.1TestCpp之NewRenderTest Demo分析
  9. c语言学习-在一个三行三列的矩阵中求出数值最大的元素及其行/列下标并打印输出
  10. 标准的的Flash插入
  11. linux usb有线网卡驱动_Linux下安装USB网卡驱动 | 学步园
  12. Java .class文件是什么?
  13. 大屏可视化解决方案:公安大数据平台建设
  14. 嵌入式开发--智能机械臂
  15. MySql ORDER BY排序用法
  16. 2022焊工(初级)特种作业证考试题库及答案
  17. lisp画弯箭头_在CAD中直接用命令画箭头
  18. c语言程序设计作业电话簿,C语言设计简易电话簿
  19. c语言栈的实现和表示
  20. AutoWare install

热门文章

  1. Python创建动态二维数组
  2. 计算机桌面锁屏设置,电脑屏幕锁怎么设置?电脑锁屏快捷键是什么?
  3. android进度条已加载部分闪光,叮咚!运动会进度条已加载至■■■99%
  4. windows服务器不显示字体,windows服务器不显示字体
  5. 模拟新浪微博随便看看(Android)
  6. 默认让网页打开出现360极速模式
  7. WebService 通俗解释,看它到底是什么技术
  8. STM32MP157实现串口接收数据上云-MP157连接4G模块和电脑
  9. Navicat 连接MongoDB 查询语句
  10. windows hello 设置指纹时提示抱歉,出现问题 的一种解决方案