1、UUID简介
UUID(Universally Unique Identifier)的标准型式包含32个16进制数字,以连字号分为五段,形式为8-4-4-4-12的36个字符,示例:550e8400-e29b-41d4-a716-446655440000,到目前为止业界一共有5种方式生成UUID,详情见IETF发布的UUID规范 A Universally Unique IDentifier (UUID) URN Namespace。
2、UUID的优缺点
优点:
(1)性能非常高:本地生成,没有网络消耗。
缺点:
(1)不易于存储:UUID太长,16字节128位,通常以36长度的字符串表示,很多场景不适用;
(2)信息不安全:基于MAC地址生成UUID的算法可能会造成MAC地址泄露,这个漏洞曾被用于寻找梅丽莎病毒的制作者位置。
(3)ID作为主键时在特定的环境会存在一些问题,比如做DB主键的场景下,UUID就非常不适用:
1、MySQL官方有明确的建议主键要尽量越短越好,36个字符长度的UUID不符合要求。
2、对MySQL索引不利:如果作为数据库主键,在InnoDB引擎下,UUID的无序性可能会引起数据位置频繁变动,严重影响性能。