mysql字段uuid_mysql - 如何将uuid存储为数字?

如果我理解正确,您在主列中使用UUID? 人们会说普通(整数)主键会更快,但是使用MySQL的另一种方法是黑暗的。 事实上,当需要索引时,MySQL使用二进制文件比使用二进制文件更快。

由于UUID是128位并且写为十六进制,因此加速和存储UUID非常容易。

首先,在您的编程语言中删除破折号

从length / 2到BINARY (64)。

现在它是32个字符(就像MD5哈希,这也适用)。

由于MySQL中的单个length / 2的大小为8位,因此BINARY (64)是UUID的大小(8 * 16 = 128)。

你可以插入使用:

length / 2

和查询使用:

length / 2

现在使用您的编程语言,在第9,14,19和24位重新插入破折号以匹配您的原始UUID。 如果位置总是不同,您可以将该信息存储在第二个字段中。

完整示例:

CREATE TABLE `test_table` (

`field_binary` BINARY( 16 ) NULL ,

PRIMARY KEY ( `field_binary` )

) ENGINE = INNODB ;

INSERT INTO `test_table` (

`field_binary`

)

VALUES (

UNHEX( '110E8400E29B11D4A716446655440000' )

);

SELECT HEX(field_binary) AS field_binary FROM `test_table`

如果要将此技术与任何十六进制字符串一起使用,请始终对字段长度执行length / 2。 因此对于sha512,该字段将为BINARY (64),因为sha512编码长度为128个字符。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值