我正在使用PHP生成UUID,根据函数find here

现在我想将其存储在MySQL数据库中.存储UUID v4的最佳/最有效的MySQL字段格式是什么?

我现在有varchar(256),但我很确定这比需要的要大得多.我已经找到了很多几乎可以回答的答案,但它们对于所指的UUID的形式通常是模棱两可的,所以我想知props 体的格式.

推荐答案

如果你想要完全合身的话,可以将其储存为VARCHAR(36),或者以同样的存储成本储存为VARCHAR(255).这里没有理由对字节大惊小怪.

记住,VARCHAR个字段等于variable length,所以存储成本与字段中实际包含的数据量成正比,而不是与字段中可能包含的数据量成正比.

将其存储为BINARY非常烦人,这些值无法打印,在运行查询时可能会显示为垃圾.很少有理由使用字面二进制表示法.人类可读的值可以复制粘贴,并且易于处理.

其他一些平台,比如Postgres,有一个合适的UUID列,它在内部以更紧凑的格式存储,但显示为人类可读的,因此您可以充分利用这两种方法.

Mysql相关问答推荐

MYSQL子查询

MySQL逻辑全部

版本升级到5.0.0后在QueryDSL中使用Enum时出错

为什么MySQL不同版本的值会变化?

布尔值之间的 SQL less/greater 比较会产生意外结果

在带有 D.I 的 .NET AWS Lambda 中使用 MySql.Data

有没有比使用 MySQL 计划事件更好的方法来更新我的数据库表中的列?

检索按键列值分组的最新日期 (MySql)

检索按键列值分组的最新日期 (MySql)

MYSQL 删除两个已知字符串之间的字符串

根据使用 mysql 的第一个过滤结果添加更多表行

无法通过迁移在现有表中插入行 - Rails 6

如何判断嵌套查询返回的元组中的每个条目是否相同?

在mysql中将纪元数转换为人类可读的日期

通过数据库级​​别本身的查询反序列化

Laravel classloader.php 错误打开流失败:没有这样的文件或目录

重新加载 .env 变量而不重新启动服务器(Laravel 5,共享主机)

你如何 OR 两个 LIKE 语句?

PHP 判断 NULL

使用 Docker 我收到错误:SQLSTATE[HY000] [2002] 没有这样的文件或目录