什么是UUID
UUID(Universally Unique Identifier,通用唯一标识码)不依赖于任何第三方系统,所以在性能和可用性上都比较好,因此很多系统都喜欢使用UUID作为主键.
UUID作为主键的优势
- 使用起来非常方便,并且已经有很多成熟的方法生成UUID
- 表的主键都必须是唯一的,所以UUID很适合
UUID作为主键的缺点
- 大多数表的设计都具有单调递增性,而主键也很多时候作为递增排序的字段,而UUID并不具备此特性.
- 由于UUID的无序性,也会降低数据写入的性能,例如大家熟知的MySQL InnoDB引擎是用B+数存储索引数据,而主键作为索引之一,如主键数据无序在数据写入时候会对B+数重排导致多余的性能消耗.
- UUID是由32个16进制数组成,因此使用UUID作为主键会占用很大的空间.
- UUID没有具体的业务含义,而大多数系统查询数据的时候都希望有一定的业务含义,例如有时间信息可以看出此条数据的生成时间、或者其中包含用户信息来指明数据所属用户等等.
UUID可以哪些场景使用呢
UUID可以生成唯一的RequestID来标记单次请求,特别是请求需要经过很多系统的时候进行后期的问题排查等会有很好的效果.
各位还有其他更好的使用场景么?欢迎一起来评论区交流
写在最后
主从分离是提高系统性能的方法之一,希望这篇文章可以帮助大家更深刻理解主从复制。关注程序员小徐,专注技术坑。