在mysql中安排表的功夫,mysql官方保举不要运用uuid或许不赓续不反复的雪花id(long形且独一,单机递加),而是保举赓续自增的主键id,官方的保举是auto_increment,那末为甚么不发起采纳uuid,运用uuid到底有甚么害处?
本篇博客咱们就来剖析这个题目,探究一下内部的原由。
本篇博客的目录
mysql程序实例
运用uuid和自增id的索引构造相比
归纳
一、mysql和程序实例1.1.要注明这个题目,咱们首先来建设三张表离别是user_auto_key,user_uuid,user_random_key,离别示意主动增进的主键,uuid做为主键,随机key做为主键,其余咱们绝对坚持稳定.
依照操纵变量法,咱们只把每个表的主键运用不同的战略生成,而其余的字段绝对同样,而后测试一下表的插入速率和盘查速率:
注:这边的随机key原来是指用雪花算法算出来的先后不赓续不反复无规律的id:一串18位长度的long值
id主动生成表:
用户uuid表
随机主键表:
1.2.光有理论不可,直接上程序,运用spring的jdbcTemplate来完结增查测试:技巧框架:springboot+jdbcTemplate+junit+hutool,程序的旨趣便是连贯本身的测试数据库,而后在不异的处境下写入等同数目的数据,来剖析一下insert插入的时候来施行归纳其效率,为了做到最的确的成绩,通盘的数据采纳随机生成,例如名字、邮箱、住址都是随机生成。
package