首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

全局唯一ID--UUID介绍、JAVA中UUID的使用

但这个唯一性是有限的,只在特定的范围内才能得到保证,这和UUID的类型有关(参见UUID的版本)。 UUID的版本UUID具有多个版本,每个版本的算法不同,应用范围也不同。...这个版本的UUID在实际中较少用到。 UUID Version 3:基于名字的UUID(MD5)基于名字的UUID通过计算名字和名字空间的MD5散列值得到。...这个版本的UUID保证了:相同名字空间中不同名字生成的UUID的唯一性;不同名字空间中的UUID的唯一性;相同名字空间中相同名字的UUID重复生成是相同的。...UUID Version 4:随机UUID根据随机数,或者伪随机数生成UUID。...nameUUIDFromBytes(byte[])方法, 可以得知 其内部使用的是算法版本分别是4、3; 因为我们更趋向于使用版本3、5的算法实现, 所以在实际生产中,推荐使用 nameUUIDFromBytes方法将自身的唯一id

1.8K20

为什么MySQL不推荐使用uuid或者雪花id作为主键?

p=5090 前言 在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一,单机递增),而是推荐连续自增的主键id,官方的推荐是auto_increment...一、mysql和程序实例 1.1.要说明这个问题,我们首先来建立三张表 分别是user_auto_key,user_uuid,user_random_key,分别表示自动增长的主键,uuid作为主键,随机...user_uuid表写入结果: ? 1.4.效率测试结果 ? 在已有数据量130W的时候:我们再来测试一下插入10w数据,看看会有什么结果: ?...的生成策略在大数据量的数据插入表现,然后分析了id的机制不同在mysql的索引结构以及优缺点,深入的解释了为何uuid和随机不重复id在数据插入中的性能损耗,详细的解释了这个问题。...在实际的开发中还是根据mysql的官方推荐最好使用自增idmysql博大精深,内部还有很多值得优化的点需要我们学习。

4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysql 自增idUUID做主键性能分析,及最优方案

    UUID UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦开放软件基金会组织在分布式计算环境领域的一部分。...在ColdFusion中可以用CreateUUID()函数很简单地生成UUID,其格式:xxxxxxxx-xxxx- xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每个 x 是...而标准的UUID格式:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12),可以从cflib 下载CreateGUID() UDF进行转换。...(2).但是在我们实际到项目中会碰到问题,历史数据表的主键id会与数据表的id重复,两张自增id做主键的表合并时,id一定会有冲突,但如果各自的id还关联了其他表,这就很不好操作。...4.如果非要使用uuid做主键,下面是小建议: 如果是主从即M-S模式,最好是不使用mysql自带函数uuid来生成唯一主键,因为主表生成的uuid要再关联从表时,需要再去数据库查出这个uuid,需要多进行一次数据库交互

    8.1K20

    mysql java uuid_Java生成UUIDMySQL数据库如何生成uuid数据

    标准的UUID格式:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)。...去掉“-”符号 return uuid.replaceAll(“-“, “”); } 二、MySQL数据库如何批量插入不重复uuid数据 第一步:先把需要查询的数据列出来select UUID(), a.Code...where a.Code =b.CountryCode ); 第三步:更新UUID,将“-”替换掉 update TEMPTABLEset id =select REPLACE(id,’-‘,”) 三、...生成UUID /*只能生成一条*/SELECT REPLACE(UUID(),’-‘,”) AS id;/*在数据库中找一张数据多的表执行生成多条*/SELECT (REPLACE(UUID(),’-‘..., ”)) id FROM 表名 LIMIT (条数50); 四、sqlServer 生成UUID方法 select newId(); 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    4.7K30

    使用雪花iduuid作为MySQL主键,被老板怼了一顿!

    磊哥,前几天在做项目demo的时候,使用雪花iduuid作为Mysql主键,被老板怼了一顿!...一、MySQL和程序实例 1.1 要说明这个问题,我们首先来建立三张表 分别是user_auto_key,user_uuid,user_random_key,分别表示自动增长的主键,uuid作为主键,随机...user_uuid表写入结果: ? 1.4 效率测试结果 ? 在已有数据量130W的时候:我们再来测试一下插入10w数据,看看会有什么结果: ?...的生成策略在大数据量的数据插入表现,然后分析了id的机制不同在mysql的索引结构以及优缺点,深入的解释了为何uuid和随机不重复id在数据插入中的性能损耗,详细的解释了这个问题。...在实际的开发中还是根据mysql的官方推荐最好使用自增idmysql博大精深,内部还有很多值得优化的点需要我们学习。

    8.4K32

    使用雪花iduuid作为Mysql主键,被老板怼了一顿!

    来源:cnblogs.com/wyq178/p/12548864.html ---- 前言:在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一)...一、mysql和程序实例 1.1 要说明这个问题,我们首先来建立三张表 分别是user_auto_key,user_uuid,user_random_key,分别表示自动增长的主键,uuid作为主键,随机...表写入结果: 1.4 效率测试结果 在已有数据量130W的时候:我们再来测试一下插入10w数据,看看会有什么结果: 可以看出在数据量100W左右的时候,uuid的插入效率垫底,并且在后序增加了130W...的生成策略在大数据量的数据插入表现,然后分析了id的机制不同在mysql的索引结构以及优缺点,深入的解释了为何uuid和随机不重复id在数据插入中的性能损耗,详细的解释了这个问题。...在实际的开发中还是根据mysql的官方推荐最好使用自增idmysql博大精深,内部还有很多值得优化的点需要我们学习。

    1.2K20

    使用雪花iduuid作为Mysql主键,被老板怼了一顿!

    ---- 前言 在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一,单机递增),而是推荐连续自增的主键id,官方的推荐是auto_increment...本篇博客的目录 mysql程序实例 使用uuid和自增id的索引结构对比 总结 一、mysql和程序实例 1.1.要说明这个问题,我们首先来建立三张表 分别是user_auto_key,user_uuid...user_uuid表写入结果: ? 1.4.效率测试结果 ? 在已有数据量130W的时候:我们再来测试一下插入10w数据,看看会有什么结果: ?...的生成策略在大数据量的数据插入表现,然后分析了id的机制不同在mysql的索引结构以及优缺点,深入的解释了为何uuid和随机不重复id在数据插入中的性能损耗,详细的解释了这个问题。...在实际的开发中还是根据mysql的官方推荐最好使用自增idmysql博大精深,内部还有很多值得优化的点需要我们学习。 ---- ----

    2.2K10

    使用雪花iduuid作为Mysql主键,被老板怼了一顿!

    前言: 在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用...# mysql和程序实例 1.要说明这个问题,我们首先来建立三张表 分别是user_auto_key,user_uuid,user_random_key,分别表示自动增长的主键,uuid作为主键,随机key...表写入结果: 4.效率测试结果 在已有数据量130W的时候:我们再来测试一下插入10w数据,看看会有什么结果: 可以看出在数据量100W左右的时候,uuid的插入效率垫底,并且在后序增加了130W...的生成策略在大数据量的数据插入表现,然后分析了id的机制不同在mysql的索引结构以及优缺点,深入的解释了为何uuid和随机不重复id在数据插入中的性能损耗,详细的解释了这个问题。...在实际的开发中还是根据mysql的官方推荐最好使用自增idmysql博大精深,内部还有很多值得优化的点需要我们学习。

    1.6K10

    使用雪花 iduuid 作为 MySQL 主键,被老板怼了一顿!

    juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8d91f0b758e14dd9bac0fa893f173524~tplv-k3u1fbpfcp-zoom-1.image) 在已有数据量...带着疑问, 我们来探讨一下这个问题: ### 二、使用 uuid 和自增 id 的索引结构对比 **2.1 使用自增 id 的内部结构** !..., 页分裂导致移动大量的数据,一次插入最少需要修改三个页以上 ③:由于频繁的页分裂,页会变得稀疏并被不规则的填充,最终会导致数据会有碎片 在把随机值(uuid 和雪花 id)载入到聚簇索引 (innodb...的生成策略在大数据量的数据插入表现,然后分析了 id 的机制不同在 mysql 的索引结构以及优缺点,深入的解释了为何 uuid 和随机不重复 id 在数据插入中的性能损耗,详细的解释了这个问题。...在实际的开发中还是根据 mysql 的官方推荐最好使用自增 idmysql 博大精深,内部还有很多值得优化的点需要我们学习。

    2.9K00

    MySQL设置数据库只读

    前言: 默认情况下,我们的 MySQL 实例是可读写的。但有些情况下,我们可以将整个实例设置只读状态,比如做迁移维护的时候或者将从库设为只读。本篇文章我们来看下 MySQL 设置只读相关知识。...read_only 和 super_read_only 是有关联的,二者之间的关系如下: 设置 super_read_only=on ,也就隐式地设置了 read_only=on。...设置 read_only=off ,也就隐式地设置了 super_read_only=off。 可以单独开启 read_only 而不开启 super_read_only。...read lock 也可将数据库设置只读状态,那么二者有什么区别呢?...总结: 本篇文章主要介绍了 MySQL 只读状态相关知识,其实除了从库外,其余实例很少设置全局只读,只是遇到某种需求的情况下需要将数据库设为只读状态,写本篇文章的目的也是遇到此类需求时,可以有个参考。

    7.6K10

    分布式ID系列(2)——UUID适合做分布式ID

    UUID的底层是由一组32位数的16进制数字构成,是故 UUID 理论上的总数[1565060542.png] ,约等于[1565060554.png],也就是说若每纳秒产生1百万个 UUID,要花100...UUID的格式: UUID 的十六个八位字节被表示 32个十六进制数字,以连字号分隔的五组来显示,形式 8-4-4-4-12,总共有 36个字符(即三十二个英数字母和四个连字号)。...早期微软 GUID 预留。 variant 3:111x。将来扩展预留。目前暂未使用。...的值是:24e6f66b3dfb4aba8e3e3801d3327e08 UUID是否适合做分布式id: 如果需求是只保证唯一性,那么UUID也是可以使用的,但是按照上面的分布式id的要求, UUID其实是不能做成分布式...id的,原因如下: 首先分布式id一般都会作为主键,但是安装mysql官方推荐主键要尽量越短越好,UUID每一个都很长,所以不是很推荐 既然分布式id是主键,然后主键是包含索引的,然后mysql的索引是通过

    1.9K40

    MySQL中存储UUID的最佳实践

    MySQL中有一个UUID () 函数,通常用UUID做唯一标识,需要在数据库中进行存储。使用此函数可以让MySQL生成一个UUID值,并以VARCHAR(36)类型的可读形式返回。...但是对于像MySQL的InnoDB存储引擎来说,使用UUID作为主键(PRIMARY KEY)会带来一些问题。 1、问题阐述 问题一:UUID的长度问题 UUID的长度36个字符。...假设数据库的字符集UTF8,那么UUID的最大长度2+3*26=110字节。...由于主键和二级索引的尺寸很大,所以不利于在内存中操作 问题二:UUID的格式问题 MySQLUUID ()使用的是version 1的UUID,该类型的UUID的特点是基于时间,它是一个128位的数字...因此,在我们存储UUID之前,重新安排UUID,使得快速变化的部分放到最后,例如: 把432a4ec8-3642-11e9-805a-0050568238b5重组11e9-3642-432a4ec8-

    9K30
    领券