mybatis-plus id 主键生成 引发的自增主机突然变的非常大的问题

在开发过程中,数据量累计到一定程度,这个具体的没有测试,出现一个问题,就是mysql的自增主键从四位一下跳到了20位,不论如何修改数据库的自增方式都不起作用。
排查原因发现是引用了mybatis-plus组件,该组件会自动插入一个id到实体对象, 不管你封装与否,这就导致了出现id变的非常大的原因:

默认是生成一个长数字字符串(编码不同可能结尾带有字母)
且实体类主键上面只添加了@TableId

解决方案:

第一种(推荐): 在主键上面添加注解: @TableId(value="id",type = IdType.AUTO),id为数据库索引字段,且重新恢复数据库表对应的自增方式,处理历史数据。

第二种:直接修改字段为long类型, 保证有足够位数放入生成的id。

第三种:修改主键字段为字符串,使用uuid或者集群唯一id方式记录,且主键添加注解: @TableId(type = IdType.INPUT),同时在保存这张表时候,写入主键值即可。

其他type类型介绍:

其他type类型介绍
AUTO : AUTO(0, “数据库ID自增”),
INPUT : INPUT(1, “用户输入ID”),
ID_WORKER : ID_WORKER(2, “全局唯一ID”),
UUID : UUID(3, “全局唯一ID”),
NONE : NONE(4, “该类型为未设置主键类型”),
ID_WORKER_STR : ID_WORKER_STR(5, “字符串全局唯一ID”);

你可能感兴趣的:(mybatis-plus id 主键生成 引发的自增主机突然变的非常大的问题)