Mysql 外键的UUID
为什么UUID被用作主键?它们需要大量内存来存储。据我所知,它们被用作主键,因为生成的每个值都是唯一的,这在合并两个数据库时很有用,因为不会发生冲突 如果UUID用于API端点猜测的隐私,为什么不使用、ID、数据库号,然后将它们作为主键进行散列?然后该ID可以用于关系,这很方便。ID和数据库号的散列值都可用于主键,使用ID搜索数据项的速度也比UUID快。通用唯一ID(UUID)主要用于:Mysql 外键的UUID,mysql,sql,database,Mysql,Sql,Database,为什么UUID被用作主键?它们需要大量内存来存储。据我所知,它们被用作主键,因为生成的每个值都是唯一的,这在合并两个数据库时很有用,因为不会发生冲突 如果UUID用于API端点猜测的隐私,为什么不使用、ID、数据库号,然后将它们作为主键进行散列?然后该ID可以用于关系,这很方便。ID和数据库号的散列值都可用于主键,使用ID搜索数据项的速度也比UUID快。通用唯一ID(UUID)主要用于: 在各种系统中生成标识符,而无需与中央机构(如数据库服务器中的序列号生成器)进行协调 在系统(如联合数据库)
- 在各种系统中生成标识符,而无需与中央机构(如数据库服务器中的序列号生成器)进行协调
- 在系统(如联合数据库)之间共享数据记录,而不存在冲突风险
如果需要通用唯一id,请使用通用唯一id(UUID)。没有必要发明你自己的 “为什么不改为拥有、ID、数据库号,然后将它们作为主键进行散列?”因为这样可能会有重复项。如果将它们存储为二进制,则UIDS需要16字节的存储空间,这并不“很多”。大多数散列即使没有更大的存储需求,也有类似的需求。UUID的搜索惩罚是什么?惩罚是什么?B-树索引(最常见的情况是AFAIK)的搜索复杂度是O(logn),无论它是什么类型,这能回答您的问题吗?