使用UUID虽然可以保证ID的唯一性,但是长得丑,很难满足业务系统的很多其他特性吧。
1.比如UUID是无序的,但是业务系统很多时候希望生成的ID是有序的,或者叫粗略有序。
2.UUID携带的信息少,比如没有时间的反解,我们就会很依赖这条数据的时间戳字段,在看到ID的时候,就没有那么直观的可以知道什么时候产生和什么地方生成的,在机器比较多的时候比较难查。
3.上次一个同事告诉我,他的服务频繁使用UUID的原因,服务宕机啦,可见这个性能并不好,具体原因没去了解。
4.UUID比较长,占用空间大,会影响性能,看到之前一个服务将UUID转成10位的当唯一键,这样还是会重复的吧。
5.还有在使用B+树之类的建立索引的时候,比如使用唯一键,因为UUID是无序的,在加入树的时候是比较消耗性能的,尤其是频繁增加和记录空间比较多的时候。