1. 什么是UUID
UUID是通用唯一识别码的缩写,其目的是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定
MySQL内置UUID函数
SELECT UUID();
2. 为什么想要使用UUID
在数据库集群中,为了避免每个MySQL各自生成的主键产生重复,所以有人考虑采用UUID方式
3. UUID主键的好处
- 使用UUID,分布式生成主键,降低了全局节点的压力,使得主键生成速度更快
- 使用UUID生成的主键值全局唯一
- 跨服务器合并数据很方便
4. UUID主键的缺点
- UUID占用16个字节,比4字节的int类型和8字节的bigint类型更加占用存储空间
- UUID是字符串类型,查询速度很慢
- UUID不是顺序增长,作为主键,数据写入IO随机性很大
5. 主键自动增长的优点
- int和bigint类型占用存储空间较小
- MySQL检索数字类型速度远快于字符串
- 主键值是自动增长的,所以IO写入连续性较好
6. 分布式环境下的主键自动增长
MyCat
7. 结论
无论什么场合,都不推荐使用UUID作为数据表的主键