UUID
优点:(1)使用简单(2)无需引入额外组件
缺点:(1)无序,无法实现范围查询(2)插入操作比自增ID差不少(3)建议用自增ID+UUID (自增ID作为主键,UUID作为业务的唯一标识)
测试发现,自增ID的性能比UUID的快了四倍
借助Redis进行生成(依靠单线程的特性)
使用Incr指令
优点:(1)使用简单(2)性能不错
缺点:(1)需要引入额外组件(2)强依赖Redis
利用数据库的自增能力

优点:(1)使用简单(2)对代码没有侵入性
缺点:(1)扩展性不佳 (2)非单调递增,只能趋势递增
如果用这个方案,建议步长设置大点
号段模式




优点:取得号段之后,不再强依赖数据库
缺点:趋势递增的,而非单调递增
雪花算法

应用案例

优点:(1)不依赖任何中间件(2)性能好(3)单调递增
缺点:(1)依赖时钟的一致性(2)时钟回拨会有问题