全局唯一性: 不能出现重复的 ID 号,既然是唯一标识,这是最基本的要求。
趋势递增: 在 MySQL InnoDB 引擎中使用的是聚集索引,由于多数 RDBMS 使用 B-tree 的数据结构来存储索引数据,在主键的选择上面大家应该尽量使用有序的主键保证写入性能。
单调递增: 保证下一个 ID 一定大于上一个 ID,例如事务版本号、IM 增量消息、排序等特殊需求。
信息安全: 如果 ID 是连续的,恶意用户的扒取工作就非常容易做了,直接按照顺序下载指定 URL 即可;如果是订单号就更危险了,竞对可以直接知道大家一天的单量。所以在一些应用场景下,会需要 ID 无规则、不规则。
如果觉得《分布式主键的意义 – 数据库 – 前端》对你有帮助,请点赞、收藏,并留下你的观点哦!