![](/img/trans.png)
[英]What is the performance hit of using a string type vs a uuid type for a UUID primary key?
[英]Right choice of data type for UUID as primary key
先决条件是
- 表将有数十亿的数据
- 表将有二级索引
- 表的主键将是另一个表的外键。
- 表将有大量数据(另一列可能是文本)。
主键必须是唯一的,因为我的数据库是通过机器复制的,这就是我选择 UUID 的原因。
PS:空间也是一个问题,所以我猜 Varchar(36) 可能是个坏主意
我同意BINARY(16)
。 (16 字节比 37 字节好。)
但是 UUID 对于大表来说效率低得无可救药。 (我假设您的十亿行表不适合 RAM。)
我在http://mysql.rjweb.org/doc.php/uuid 中讨论了这些和更多问题
我会选择 BINARY(16)。 如果你想使用 CHAR,那么 CHAR(32) 就足够大了,没有连字符,但 BINARY 更小更快。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.