我对SQL编程相当陌生,我有一个有两列的表,UUID ( 32 CHAR唯一的十六进制)和权限(只是我所使用的系统的权限,比如'admin‘或’黑名单‘)。
在主键的概念上,我不是最好的,所以我想知道使用UUID作为我的主键是否有效,因为它是100%唯一的,没有空格,我已经用它来轻松地索引我的查询了。我不会用任何东西加入这个表,而且很可能永远也不会加入,那么使用UUID作为我的主键而不产生任何不可预见的后果有效吗?
发布于 2017-09-07 23:28:59
使用UUID作为主键是有效的。它满足主键所需的两个条件:
然而,这是个坏主意。为什么?MySQL自动按主键对数据进行集群。也就是说,数据实际上是按主键排序的。UUID不是顺序的。插入可以发生在任何地方,需要移动数据。
我建议使用一个简单的自动递增主键,并将UUID声明为唯一:
https://stackoverflow.com/questions/46106485
复制相似问题