这是我将UUID()生成的MySQL GUID/UUID转换为二进制(16)的最佳方法:
UNHEX(REPLACE(UUID(),'-',''))
然后将其存储在BINARY(16)
以我应该知道的方式做这件事是否有任何影响?
影响不大.它会减慢查询速度,但你几乎不会注意到它.
UNIQUEIDENTIFIER
16-byte binary
无论如何都存储在内部.
如果要将二进制文件加载到客户端并在那里解析它,请注意bit order
,它可能有其他字符串表示形式而不是初始化NEWID()
.
Oracle
的SYS_GUID()
功能很容易出现这个问题,将其转换为字符串会在客户端和服务器上产生不同的结果.