问题
在 MySQL 中设计表的时候,MySQL 官方推荐不要使用 uuid 或者不连续不重复的雪花 id(long 型且唯一),而是推荐连续自增的主键 id,官方的推荐是 auto_increment,那么为什么不建议采用 uuid,使用 uuid 究竟有什么坏处?
MySQL 和程序实例
1、要说明这个问题,我们首先来建立三张表
分别是 user_auto_key,user_uuid,user_random_key,分别表示自动增长的主键,uuid 作为主键,随机 key 作为主键,其它我们完全保持不变。根据控制变量法,我们只把每个表的主键使用不同的策略生成,而其他的字段完全一样,然后测试一下表的插入速度和查询速度。注:这里的随机 key 其实是指用雪花算法算出来的前后不连续不重复无规律的 id:一串 18 位长度的 long 值。id 自动生成表:
用户 uuid 表
随机主键表: