磊哥,前几天在做项目demo的时候,使用雪花id或uuid作为Mysql主键,被老板怼了一顿!...一、MySQL和程序实例
1.1 要说明这个问题,我们首先来建立三张表
分别是user_auto_key,user_uuid,user_random_key,分别表示自动增长的主键,uuid作为主键,随机...key作为主键,其它我们完全保持不变.根据控制变量法,我们只把每个表的主键使用不同的策略生成,而其他的字段完全一样,然后测试一下表的插入速度和查询速度:
注:这里的随机key其实是指用雪花算法算出来的前后不连续不重复无规律的...用户uuid表
?
随机主键表:
?...带着疑问,我们来探讨一下这个问题:
二、使用uuid和自增id的索引结构对比
2.1 使用自增id的内部结构
?
自增的主键的值是顺序的,所以Innodb把每一条记录都存储在一条记录的后面。