凭啥不能用uuid做MySQL的主键

北京中科白癜风医院路线 https://baijiahao.baidu.com/s?id=1686224253368299847&wfr=spider&for=pc
媒介

在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


转载请注明:http://www.aierlanlan.com/cyrz/1178.html