如何在 MySQL 中将 UUID 存储为数字
将 UUID 存储为数字比将其存储为字符串具有性能优势。以下是有关如何在 MySQL 中实现此目的的分步指南:
在 MySQL 中创建一个 BINARY 字段:
在 MySQL 表中创建一个 BINARY 字段,其长度与二进制 UUID 的长度匹配(在我们的示例中为 16)。这可以使用以下命令完成:
CREATE TABLE my_table ( uuid BINARY(16) NOT NULL );
插入二进制 UUID:
使用 UNHEX() 函数将二进制 UUID 插入字段:
INSERT INTO my_table (uuid) VALUES (UNHEX('110E8400E29B11D4A716446655440000'));
检索并转换为 UUID:
从数据库检索 UUID 时,选择 BINARY 字段并使用 HEX() 函数将其转换回带连字符的 UUID:
SELECT HEX(uuid) AS original_uuid FROM my_table;
Ruby 代码集成:
插入:
使用 ActiveSupport::Digest::UUID.binary_pack(uuid) 将 UUID 转换为二进制字符串。然后使用 UNHEX() 函数将其转换为十六进制字符串,然后将其插入字段中。
检索:
从字段中检索二进制 UUID 并将其转换为使用 HEX() 的十六进制字符串。然后,您可以使用 ActiveSupport::Digest::UUID.uuid_unpack() 将十六进制 UUID 转换回其原始格式。
以上是如何在 MySQL 中将 UUID 作为数字存储以提高性能?的详细内容。更多信息请关注PHP中文网其他相关文章!