数据库中每一条记录都需要有一个唯一的标识,一般来说有两种选择方式:
使用业务字段做主键
很多情况下很难找到一个业务字段是唯一标识
业务字段长度有可能改变- 使用自动生成的唯一ID作为主键
- 唯一性,生成就不会变更,可以随意引用
- 单库单表场景下:
- 自增字段作为ID
- 分库分表场景下:
- UUID
一般用来生成Request ID来标记单次请求
生成的ID最好具有单调递增性,也就是有序,而UUID不具备这个特点,ID有可能成为排序字段
ID有序也会提升数据的写入性能(B+树存储索引,顺序写入不需要寻道)
不具备业务含义,UUID无意义
32个16进制数字组成,比较耗费空间
- 搭建发号服务来生成ID