- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
如果您愿意,可以快速提问或发表意见。
我需要为数据库表生成一些 UUID。
自动递增键不会削减它,因为我还需要键在数据库和系统中是唯一的。 UUID 工作正常,但它的输出对于行将导出到的某些系统来说太长了。 UUID_SHORT() 做得很好,我已经阅读了 MYSQL 关于保证其唯一性的条件。
但我只是想仔细检查一下,如果我不时使用 UUID_SHORT() 为行生成 UUID,它们确实会像 UUID() 一样在时间和空间上是唯一的。
干杯。
最佳答案
uuid_short()
生成服务器 ID 的按位集合、相当静态的时间组件和按顺序递增的 24 位整数。这些位被填充到一个 8 字节的整数中。时间组件基于服务器的启动时间。
uuid()
生成表示 16 字节版本 1 UUID 的十六进制字符串。版本 1 UUID 是服务器 ID、当前时间戳、以超高速生成 ID 时会发挥作用的几个字节以及一些实用程序位的按位组合。
回答您的问题:uuid_short
是否提供与 uuid
相媲美的时间和空间唯一性?答案是不。例如,uuid_short
中的服务器 ID 只有一个字节。因此,如果您有 256 台或更多服务器,至少其中一些服务器将具有相同的节点 ID,这意味着您失去了空间唯一性。相比之下,版本 1 UUID 中的服务器 ID 是 6 个字节长,有效地消除了除了最大的公司服务器群之外的所有重复的机会:)
一个更好的问题是 uuid_short
是否足够好。如果您执行以下操作,您可能会看到 ID 冲突:
第二个问题对大多数人来说似乎不太可能,但在您 promise 将 uuid_short
作为您的 key 的基础之前,第一个问题值得研究。
*** 根据 uuid_short
的 mysql 文档,如果在单个服务器正常运行期间生成超过 1600 万个 ID,您似乎会看到冲突。但那将是愚蠢的。 mysql 文档继续说,只要您不每秒生成 1600 万个 ID,就可以了。这意味着如果您用尽 1600 万个连续 ID,它们必须在时间戳中增加一些位。我没有对此进行测试。
关于mysql - Mysql UUID_SHORT() 是否与 UUID() 相当,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12818671/
我有 MySQL 5.5.24。调用 uuid_short() 几次我只得到一个递增的值: mysql> select uuid_short(); +-------------------+ | uu
我有用户表。主键是 user_id,其数据类型为 bigint(20)。 我通过下面的触发器使用 UUID_SHORT() 生成了一个 user_id。问题是当我尝试按如下方式插入记录时收到警告: W
如果我在 INSERT 语句中使用 UUID_SHORT() 函数,我如何确保它创建的 UUID 以前没有在表中使用过,它会自动检查并在发生冲突时重新生成 UUID 吗? 最佳答案 UUID_SHOR
我只是想知道是否有人可以帮助我为 mysql 创建一个 mysql 函数UUID_SHORT(),因为我使用的版本没有那个函数。 据我所见,该函数本质上是调用 (server_id & 255) <<
基本上我想做的是使用 MySqli 执行查询 UUID_SHORT() 并获取结果。没有 INSERT、UPDATE、DELETE 或任何内容,我只想要 UUID_SHORT 的值。 一直无法弄清楚,
到目前为止我还不明白,我收到了重复条目错误消息,我正在尝试为主索引插入 UUID_SHORT。 id 列是整数 18,UUID_SHORT 是使用 BEFORE_INSERT 触发器生成的: CREA
我正在使用Simple.Data作为我的 ASP.NET/MySQL 网站的 Micro-ORM。我已经知道当主键是自增量Int时如何插入数据,但是当我需要使用uuid_short()产生一个想法时如
我在 Amazon Web Services RDS 上使用 MySQL 5.6.17,当调用 SELECT UUID_SHORT() 时,我得到的数字大于 9223372036854775807。例
如果您愿意,可以快速提问或发表意见。 我需要为数据库表生成一些 UUID。 自动递增键不会削减它,因为我还需要键在数据库和系统中是唯一的。 UUID 工作正常,但它的输出对于行将导出到的某些系统来说太
我是一名优秀的程序员,十分优秀!